所以我們從我的問題定義開始:複雜和複雜的模板
我有超大的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