所以我们从我的问题定义开始:复杂和复杂的模板
我有超大的switch语句,我只想定义一次。然后在switch语句每个案例都会调用模板函数
即:
switch(whatever)
{
case whatever::one:
dosomething<char>(parameterone, parametertwo); breakl
case whatever::two:
dosomething<int>(parameterone, parametertwo); break;
...
}
}
这完美的作品。但让我们说我想让事情变得复杂。具体而言,我希望案例陈述能够调用两个函数,即做某件事或超酷的事情。
即:
template<typename F>
void wrapper(parameterone, parametertwo)
{
switch(whatever)
{
case whatever::one:
F<char>(parameterone, parametertwo); break;
case whatever::two:
F<int>(parameterone, parametertwo); break;
...
}
}
}
其中F是某种函数指针。然后,我会打电话的包装函数是这样的:
wrapper<dosomething>(...);
OR
wrapper<superdosomething>(..);
(注:我真的不希望复制switch语句对于F中的任意有效的函数)
您是否可以控制要作为'wrapper'的模板参数传递的内容? – Angew