前提・実現したいこと
いつも質問ばかりで恐縮しています。
テンプレートクラス内のテンプレートメンバ関数で非型を仮引数に利用しようと思っています。
直接利用するときは,問題なくコンパイルできますが,テンプレートクラス内で利用するときにコンパイルできません。どのようなルールに反しているのでしょうか。解決方法をご存知の方のご教示をお願いできればと思っております。
発生している問題・エラーメッセージ
Reference to overloaded function could not be resolved; did you mean to call it?
該当のソースコード
C++
1template<typename T> 2struct Foo{ 3 template<int N> 4 static T f(T n){ 5 return N+n; 6 } 7}; 8 9template<typename T> 10struct Boo{ 11 void b(){ 12 T ans = Foo<T>::f<2>(3);/// ここでエラーが出る 13 } 14}; 15int main(){ 16 17 int ans = Foo<int>::f<2>(3);//エラーは出ない 18 19 Boo<int> boo; 20 boo.b(); 21 return 0; 22}
補足情報(FW/ツールのバージョンなど)
clang
C++17
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/27 04:23