テンプレートパラメータが1つしかない場合、C++テンプレートは型を自動的に控除することができます。たとえば、1つ以上の型名を持つテンプレート関数
template<typename T>
void f(const T &t)
{
cout << t << endl;
}
f(1);
です。
しかし、
template<typename T1, typename T2>
void f(const T1 &t1, const T2 &t2)
{
cout << t1 << t2 << endl;
}
f(1, 2);
は、上記のコードは、コンパイルを渡すことはできません。これはコンパイラの能力のためか、標準に反しているのでしょうか?
コンパイラは、複数のテンプレートパラメータを推測できるはずです。この問題を示すために完全なコンパイル可能なコードを投稿できますか? –
私が知る限り、このコードは何も間違っていません。 http://www.ideone.com/AEVs4 –
パラメータリストで '&'を削除するとどうなりますか?私は多少C++で錆びていますが、参照が期待されるところで整数定数( '1''、' 2')を渡すことができます。 – stakx