2010-11-18 28 views

答えて

3

関数内のデフォルト引数の型は、テンプレートの推定に役立ちません。type-parameter は、foo_bar()のような関数を呼び出すとエラーが発生するため、いずれの場合でも推論できません。

これを試してください。foo_bar<int>();この場合、Tのタイプが明示的に指定されているため、このような問題はありません。

+1

これは機能します。感謝します。 – FooBar

2

コンパイラは型を見つけ出すことができなければなりませんが、決して与えないと、それらのデフォルト値をどうするか分かりません。基本的には、あなたの呼び出しを関数にマッチさせることができませんでした。なぜなら、関数の型定義が機能しなかったからです(前述の理由による)。したがって、

int main() 
{ 
foo_bar<int>(); 
return 0; 
} 

などの種類を好きなように括弧で囲んでタイプを追加する必要があります。

関連する問題