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

我尝试了类似的东西,直到现在没有成功。我的第一次成功尝试是通过 boost 预处理器 makros 为不同数量的模板参数创建不同的模板。在你的例子中,这将是

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

由于我必须使用 VC10,我无法使用带有可变参数模板的解决方案。也许这可以进一步帮助您,即使这个问题已经很老了。

于 2013-05-02T20:52:19.793 回答