から派生したクラスでtypedefを参照してください有効なC++をコードするか、MSVSは正しいですか?CRTPは、私は、コードを次している基底クラス
4
A
答えて
3
問題は、完全な形にする必要がありT
この時点で
template <typename T>
class A
{
typedef typename T::Type MyType;
^^^
};
です。しかし、あなたの場合には、ときA<T>
が、ここでインスタンス化されます。
template <typename T>
class B : public A<B<T>>
^^^^^^^
B<T>
がまだ完全な型ではありません!だから、残念ながらこれはうまくいかない。
簡単な解決策は、単に個別Type
に渡すことです:
template <typename T, typename Type>
class A
{
typedef Type MyType;
};
template <typename T>
class B : public A<B<T>, T>
{
};
関連する問題
- 1. CRTP継承の基底クラスも "friending"しても子クラスに影響しますか?
- 2. は、基底クラスのコンストラクタ
- 3. は、私は次のように私はPythonの抽象基本クラスを持っているPythonの基底クラスのメソッドは、常に
- 4. 派生クラスは、私はインスタンス化さてしまったその派生クラスのかを知る必要がある基底クラスのコンストラクタで基底クラスのコンストラクタ
- 5. コードの最初の基底クラスのディスクリミネータ
- 6. マッチ基底クラス
- 7. 基底クラス
- 8. どのように基底クラスのメソッドをオーバーライドして、私の基本クラスで
- 9. doctrineを使って基底クラスを拡張しました。私の基底クラスは1:nの関連を持っていましたか?
- 10. PowerShellは、私は次のコードを持っているクラス
- 11. CSSは、私は次のコードを持っている同じクラス
- 12. NameErrorは、私は次のコードを持っているクラス
- 13. Registring Kryoクラスは、私は次のコードを持っている
- 14. ASIHTTPRequest基本認証、私は次のコードを使用してい
- 15. すべての基底クラスのインスタンスと私は、基本クラスが<code>CollidableObject</code>名付けてい
- 16. は、私は次のコードしている
- 17. は、私は次のコードしている
- 18. 私は、コードを次している#
- 19. ロボットテストケース:私はコードを次している
- 20. Pythonは定数クラスを基底クラスに継承します
- 21. EFコードで共通の基底クラスを継承する
- 22. 基底クラスと派生クラスの両方の基底クラスのデコレータの使用
- 23. クラスからのテンプレートの変換は、基底クラスを基底に継承します
- 24. ジェネリック医薬品は、私が法持つ基底クラス
- 25. 私は次のコードしている
- 26. 私は次のコードしているスレッド
- 27. デフォルトのクラスを追加するには:class?私は次のコードしている
- 28. 基底クラスを派生クラスに変換
- 29. 実行時に基底クラスを別の基底クラスに変更/スワップ
- 30. Rails多型モデル - 基底クラス
打ち鳴らすと、ここMSVCとgccのCONCUR両方。しかし、なぜ私は理解できません。 – SergeyA
MSVCに回避策はありますか? –
私はこの質問が以前に尋ねられたことは知っていますが、なんらかの理由で私は偽薬を見つけることができません。 – Barry