Boost 可变模板向量的mpl型复制if元函数
我有一个元程序,可以与常规的boostmpl配合使用。它看起来更像下面这样Boost 可变模板向量的mpl型复制if元函数,boost,metaprogramming,c++11,variadic-templates,boost-mpl,Boost,Metaprogramming,C++11,Variadic Templates,Boost Mpl,我有一个元程序,可以与常规的boostmpl配合使用。它看起来更像下面这样 template <class Vector, class ResultKind, class Custom> struct FilterChildrenIfNotOk { typedef typename copy_if<Vector, or_<is_same<boost::mpl::placeholders::_1, ResultKind>,
template <class Vector, class ResultKind, class Custom>
struct FilterChildrenIfNotOk
{
typedef typename
copy_if<Vector,
or_<is_same<boost::mpl::placeholders::_1, ResultKind>,
IsOk<boost::mpl::placeholders::_1,
ResultKind,
Custom> > >::type type;
};
模板
结构筛选器子项IFNOTOK
{
typedef typename
复制_if::type;
};
我试图使用可变模板向量(mpl::vector)编译它。为此,我使用了可变模板向量的实现,可以在这里找到:
我在repo中找不到copy\u if、remove\u if和count\u if的可用实现,尽管有一些测试。那些元程序在那里吗?我就是找不到?或者,您可以帮助我实现其中一个,以便它也支持mpl占位符。提前感谢您的帮助。让我们从一个提示开始:折叠比想象的更强大。例如,计算一个序列中的元素数只需要应用
fold
,初始状态为0,函数接受一个状态(到目前为止的元素数)和一个元素,并返回_状态+1
例如,如果,现在可以编写count\u了吗?(明显地使用折叠
)
如果你做不到,我会帮助你,直到你成功