繁体   English   中英

在c ++中移动unique_ptr

[英]moving unique_ptr in c++

我正在设计一个必须获得unique_ptr所有权的类,并用它来做。 这是代码的最小化版本:

Chunk.h:

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)’

您使用<unsigned char[]>模板作为参数,使用<char[]>模板作为成员。

它们甚至根本不被编译器视为同一类。 如果您计划使用std::move等模板函数,请使用完全相同的类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM