gpt4 book ai didi

c++ - 如何将 mpl::transform 应用于 mpl::string?

转载 作者:太空宇宙 更新时间:2023-11-04 12:25:02 24 4
gpt4 key购买 nike

我正在尝试对 mpl::string 应用转换,但无法对其进行编译。我正在使用 MS VC++2010 和 Boost 1.43.0。代码:

#include <boost/mpl/string.hpp>
#include <boost/mpl/vector_c.hpp>
#include <boost/mpl/transform.hpp>
#include <boost/mpl/plus.hpp>
#include <boost/mpl/arithmetic.hpp>

using namespace boost;

int main() {

// this compiles OK
typedef mpl::vector_c<int, 'abcd', 'efgh'> numbers;
typedef mpl::transform<numbers, mpl::plus<mpl::_1, mpl::int_<1> > >::type result_numbers;

// this doesn't (error C2039: 'value' : is not a member of 'boost::mpl::has_push_back_arg')
typedef mpl::string<'abcd', 'efgh'> chars;
typedef mpl::transform<chars, mpl::plus<mpl::_1, mpl::int_<1> > >::type result_chars;

}

我已经在 http://paste.ubuntu.com/447759/ 发布了完整的错误消息.

MPL 文档说 mpl::transform 需要一个 Forward Sequence,而 mpl::string 是一个 Bidirectional Sequence ,我收集到的是一种 Forward Sequence,所以我认为它会起作用。

我做错了什么,还是这完全不可能?如果是,为什么?

谢谢!

最佳答案

事实证明,如果我使用 transform_view,它会起作用。

关于c++ - 如何将 mpl::transform 应用于 mpl::string?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3022494/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com