Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Boost 可变模板向量的mpl型复制if元函数_Boost_Metaprogramming_C++11_Variadic Templates_Boost Mpl - Fatal编程技术网

Boost 可变模板向量的mpl型复制if元函数

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>,

我有一个元程序,可以与常规的boostmpl配合使用。它看起来更像下面这样

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了吗?(明显地使用
折叠

如果你做不到,我会帮助你,直到你成功