下部のコードは、次のコンパイル時エラーを生成します。std::vector<Node>
またはを使用すると、エラーはなくなります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' には不完全な型 typename _AT_Type::_Type _M_elems があります。^ main.cpp:3:7: エラー: 'class Node' クラス Node の前方宣言
#include <array>
class Node
{
public:
Node(Node* parent, int x) : parent_(parent), x_(x) {}
Node* parent_;
int x_;
std::array<Node, 3> children_; // ERROR
};