私は次のコードを持っています:
template<typename T>
void bar(int x, T y)
{
}
void baz(int x, int y)
{
}
template<typename T0, typename T1>
void foo(void k(T0, T1), T1 t)
{
}
int main()
{
foo(baz, 10); // OK
foo(bar, 10); // ERROR
return 0;
}
の過負荷解決はfoo
、を渡すときに正しく機能しbaz
ます。ただし、関数テンプレートを渡す場合、スコープにテンプレート引数が1つしかない場合でも、コンパイラはのテンプレート引数をbar
推測できず、最初の引数は完全にに解決されます。のような呼び出しをコンパイラで解決できるように関数テンプレートを作成するにはどうすればよいですか?T0
foo
bar
int
foo
foo(bar, 10)