循環テンプレート参照について問題があります。次のように、クラス ノードとクラス エッジを使用してツリーを作成します。
template <typename EdgeT>
class node
{
public:
std::vector<EdgeT> edge_out;
std::vector<EdgeT> edge_in;
};
template <typename NodeT>
class edge
{
public:
NodeT* src;
NodeT* dst;
int weight;
};
template <typename NodeT, typename EdgeT>
class graph
{
public:
std::vector<NodeT> nodes;
};
グラフクラスを宣言できないことがわかりましたex:
graph< node, edge > g; // <--- this cannot be solved
graph< node< edge <node.....>, edge< node< edge>> > //it makes infinity declaration..
クラスの構造を再定義するにはどうすればよいですか?