底部的代码会生成以下编译时错误。std::vector<Node>
如果我使用or ,错误就会消失std::array<unique_ptr<Node>, 3>
。有人可以解释一下这是什么吗?
在 main.cpp:1:0 中包含的文件中:/usr/include/c++/4.9/array:在 'struct std::array' 的实例化中:main.cpp:9:23:
此处需要 /usr/include/ c++/4.9/array:97:56: 错误: 'std::array<_Tp, _Nm>::_M_elems' 类型名称不完整 _AT_Type::_Type _M_elems; ^ main.cpp:3:7: 错误:“类节点”类节点的前向声明
#include <array>
class Node
{
public:
Node(Node* parent, int x) : parent_(parent), x_(x) {}
Node* parent_;
int x_;
std::array<Node, 3> children_; // ERROR
};