1
template <class T=A>
struct B {
T a;
};
struct A {
B<A> foo(){
B<A> result;
return result;
}
};
テンプレートを使用しなくてもいい方法(デフォルトのパラメータに注意してください)。 問題は、両方のクラスが互いの定義を必要とすることです。しかし、テンプレートソリューションが示すように、「真の」循環依存性はありません。定義が必要なときに循環クラスの依存を避ける
は忘れてはいけないDevStudioの2005年に私のために罰金コンパイル宣言されていないときに使用されたときにテンプレートがインスタンス化されます。 – Skizz
ええ、上記の回避策はうまくいきます。 テンプレートを削除する方法はありません。 – arithma