2

私のコードでは、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;
}

コンパイルすると、このリンクに示されている出力が表示されます

http://pastebin.com/taBWZjar

g++ コンパイラを使用しています。g++ --version と入力すると、

g++ (Gentoo 4.7.2 p1.3、パイ-0.5.5) 4.7.2

これが C++ で実行できない場合、代替手段または回避策は何ですか? それとも、これは私のコンパイラのバグですか?

4

1 に答える 1