【发布时间】:2018-05-11 16:46:55
【问题描述】:
#include <memory>
class Data;
std::unique_ptr<Data> p;
//class Data{}; // not working without this
int main(){}
用 g++-5 编译这段代码会出现这样的错误:
“sizeof”对不完整类型“Data”的无效应用
有人可以解释为什么如果我取消注释第 4 行编译会成功吗?据我了解,第三行编译器没有关于数据类型的完整信息。我们在这一行只有前向声明。真正的声明出现在第 4 行。
【问题讨论】:
标签: c++