c++
1template <class T> 2struct A 3{ 4 struct _A {}; 5}; 6 7template <class T> 8struct B { 9 A<T>::_A _a; 10}; 11 12int main() { 13 B<int> b; 14}
上記のように、テンプレートクラスAのメンバクラス_Aを別のテンプレートクラスB内で使いたいのですが、このコードをコンパイルすると以下のエラーが出ます。
(9): warning C4346: '_A': 依存名は型ではありません (9): note: 'typename' を持つプレフィックスは型を示します。 (10): note: コンパイル対象の クラス テンプレート インスタンス化 'B<T>' のリファレンスを確認してください (9): error C2061: 構文エラー: 識別子 '_A' (9): error C2238: ';' の前に無効なトークンがあります。
テンプレートクラスB内で、どのようにA<T>::_A を宣言すればエラーを消せますか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/12 11:03