前提・実現したいこと
以下のネストしたテンプレートクラス S を引数にしたテンプレート関数 func を作ったが,内部のクラス M のインスタンスが作れずにエラーになりました。何が不足しているのか,調べたがわかりませんでした。どなたか,ご教示ください。お願いします。
該当のソースコード
C++
1template<typename T> 2struct S{ 3 struct M{ 4 M(T b){} 5 }; 6 7 S(T a){} 8}; 9 10template<typename T> 11void func(S<T> i){ 12 S<T>::M m{0};///ここでエラー 13} 14 15int main(){ 16 S<int> s{10}; 17 func(s); 18}
やってみたこと
以下のように,インスタンス j はエラーが出ないのです。この両者の違いがわかりませんでした。
template<typename T> void func(S<T> i){ S<T>::M m{0};///ここでエラー S<T> j{20}; ///これはOK }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/24 12:21