私の前の質問に動機付けられました: 任意のファンクターを取り、入力ファンクターの各戻り値のタプルを返す variadic 関数を作成します
ここで、void を返す可能性のある各関数オブジェクトを実行するだけのクラスを作成したいと考えています。私の知る限りでは、次のようなものを作成できます。
class A
{
public:
template <class Func>
void operator()(Func func)
{
func();
}
template <class First, class... Funcs>
void operator()(First first, Funcs... funcs)
{
first();
operator()(funcs...);
}
};
このコードは仕事をします。Nawaz
ただし、mfontanini
上記のリンクのコードのように、もっと賢い方法があるに違いないと思います。
私は以下のコードを模倣してみました。
class A
{
public:
template <class... Func>
void operator()(Func func...)
{
func()...;
}
};
ただし、gcc 4.7.2 はコンパイルされません。私はここに行方不明ですか?