タイプの循環参照に問題があります。以下のimplmentationため:テンプレートクラスの循環依存性
// Parent.h
template <typename OtherType>
class EnclosingType
{
public:
typename OtherType type_;
};
class OtherType
{
public:
EnclosingType & e_;
OtherType (EnclosingType & e) : e_(e) {}
};
要件は、EnclosingTypeのメソッドを呼び出すことができるようにOtherTypeがEnclosingTypeのオブジェクトへの参照を取り、EnclosingTypeはOtherTypeのメソッドを呼び出すことができることです。主な目的は、実装者が独自のOtherType派生型を提供できるようにすることです。
この種の循環依存性が存在するケースを処理する最良の方法は何ですか? OtherTypeの適切な宣言は何ですか? OtherType :: EnclosingTypeの適切な宣言は何ですか? Enclosing :: OtherType :: type_の正しい宣言は何ですか?私ができることは可能ですか?
ありがとうございました。
'EnclosingType'は型ではありません。それはテンプレートです。それには方法がありません。 'OtherType'にはメソッドもありません。私はあなたがしようとしていることを理解していません。 – melpomene
CRTPをチェックすると、問題の解決に役立つかどうかはわかりませんが、このシナリオでは役立つかもしれません。 https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern –