template<typename retType,class Func >
class Call
{
public:
Call(Func* func)
{
func(500,500);
};
};
用法:
Call<int> call(Beep);//ошибка "слишком мало аргументов шаблона"
为什么自动机不能推断出func类型?您可以使用以下函数执行此操作:
template<typename retType, class Func >
void fnc(Func* func)
{
func(500, 500);
}
用法:
fnc<int>(Beep);// все работает
对于类模板,打印所有参数或不打印。
这是通过类似的语法完成的
Call call(tag<int>{}, Beep);,其中tag是,构造函数如下所示: