私のコードでは、2 つのテンプレート クラスを互いのメンバー フィールドで構成する必要があります。たとえば、2 つのファイルがあり、
templates.h
template <class T> class B;
template <class T>
class A
{
B<A> a;
// fields and methods dependent on T
};
template <class T>
class B
{
A<B> b;
// fields and methods dependent on T
};
main.cpp
#include "templates.h"
int main()
{
A<int> a;
}
コンパイルすると、このリンクに示されている出力が表示されます
g++ コンパイラを使用しています。g++ --version と入力すると、
g++ (Gentoo 4.7.2 p1.3、パイ-0.5.5) 4.7.2
これが C++ で実行できない場合、代替手段または回避策は何ですか? それとも、これは私のコンパイラのバグですか?