0

特にboost::fusion呼び出し可能オブジェクトのためにenable_ifを使用する方法はありますか?

template<typename F>
void do_something(F f, enable_if< is_fusion_callable_object<F> >::type * = 0)
{
    // how to define the "is_fusion_callable_object<> ?
}

ここで、Fは融合です。「融合関数」はパラメータとして任意のシーケンスを取ることができます

4

1 に答える 1

1

私は今まで同じようなことを試みましたが、成功しませんでした。私の最初の成功した試みは、ブーストプリプロセッサマクロを介して、異なる数のテンプレートパラメータに対して異なるテンプレートを作成することでした。あなたの例では、これは

template <typename P1, ......>
do_something(boost::fusion::vector<P1, ....> const& v)

VC10を使用する必要があったため、可変個引数テンプレートを使用したソリューションを使用できませんでした。おそらくこれはあなたをさらに助けるでしょう、質問でさえかなり古いです。

于 2013-05-02T20:52:19.793 に答える