私の問題の定義で始めることができます:複雑で畳み込まれたテンプレート
私は一度だけ定義したいと思う超大型スイッチ文を持っています。これは完璧に動作
switch(whatever)
{
case whatever::one:
dosomething<char>(parameterone, parametertwo); breakl
case whatever::two:
dosomething<int>(parameterone, parametertwo); break;
...
}
}
:switch文の各ケースは、その後
はすなわち、テンプレート関数を呼び出します。しかし、私は物事を複雑にしたいと言うことができます。具体的には、case文が2つの関数を呼び出すようにします。
すなわち:Fは、関数ポインタのいくつかの並べ替えである
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;
...
}
}
}
。はい:(I本当にDONT F FOR EVERY VALID関数のswitch文を複製する注)
テンプレート引数を 'wrapper'に渡したいものを制御できますか? – Angew