2

我有一个可以与常规 boost mpl 配合使用的元程序。它看起来更像以下内容。

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;
};

我正在尝试使用可变参数模板向量 (mpl::vector) 对其进行编译。为此,我正在使用此处找到的可变参数模板向量的实现:https ://svn.boost.org/svn/boost/sandbox/variadic_templates

尽管有一些测试,但我在 repo 中找不到可用的 copy_if、remove_if 和 count_if 实现。那些元程序在那里,我只是找不到它们?或者,您能否帮我实现其中一个,以便它也支持 mpl 占位符。提前感谢您的帮助。

4

1 回答 1

1

让我们从一个提示开始:弃牌比人们想象的要强大得多。例如,计算序列中元素的数量只包括应用fold初始状态 0 和接受状态(到目前为止的元素数量)和元素的函数,然后返回the_state + 1

count_if例如,现在你会写吗?(fold显然使用)

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

于 2011-01-06T00:40:45.883 回答