我正在设计一个类,它必须拥有一个unique_ptr,并使用它做一些事情。下面是代码的最小化版本:
春秋:
class Chunk {
public:
Chunk(std::unique_ptr<unsigned char[]> contents);
std::unique_ptr<char[]> contents;
};Chunk.cpp:
Chunk::Chunk(std::unique_ptr<unsigned char[]> content):
contents(std::move(content)){ }但是它无法编译到这个错误:
no matching function for call to ‘std::unique_ptr<char []>::unique_ptr(std::remove_reference<std::unique_ptr<unsigned char []>&>::type)’发布于 2016-01-13 12:00:56
您使用<unsigned char[]>模板作为参数,使用<char[]>模板作为成员。
编译器甚至根本不认为它们是同一个类。如果计划与std::move一样使用模板函数,则使用完全相同的类型。
https://stackoverflow.com/questions/34766064
复制相似问题