首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >级联增强::mpl::string

级联增强::mpl::string
EN

Stack Overflow用户
提问于 2010-11-02 11:57:27
回答 1查看 1.6K关注 0票数 1

我如何连接boost::mpl::string?以下代码会产生错误:

代码语言:javascript
复制
#include <iostream>
#include <boost/mpl/vector.hpp>
#include <boost/mpl/string.hpp>
#include <boost/mpl/fold.hpp>
#include <boost/mpl/placeholders.hpp>
#include <boost/mpl/push_back.hpp>

typedef boost::mpl::vector<
   boost::mpl::string<'ab'>,
   boost::mpl::string<'cd'>,
   boost::mpl::string<'ef'>
> slist;

typedef boost::mpl::fold<
   slist,
   boost::mpl::string<>,
   boost::mpl::push_back<boost::mpl::_1, boost::mpl::_2>
>::type string;

int main() {
   std::cout << boost::mpl::c_str<string>::value << std::endl;
}

完整来源于这里:http://liveworkspace.org/code/31902a4b1b0831d054119bc0b8923cb6错误:

文件中的

:source.cpp:3:0: string.hpp:用于boost::mpl::push_back_impl< boost::mpl::string_tag的实例化

*应用,boost::mpl::string<24930> >':boost/mpl/push_back.hpp:32:1:

实例化自'boost::mpl::push_back< boost::mpl::string<>,boost::mpl::string<24930>‘boost/mpl/aux_/has_ from .has:20:1:

实例化自'const bool boost::mpl::aux::has_type< boost::mpl::push_back,boost::mpl::string<24930> >,mpl_::bool_ ::value‘boost/mpl/aux_/has.has:20:1:

实例化自'boost::mpl::aux::has_type< boost::mpl::push_back,boost::mpl::string<24930> >,mpl_::bool_‘boost::mpl::push_back实例化自'boost::mpl::quote2< boost::mpl::push_back ::apply,从‘boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp:49:1: boost::mpl::boost::mpl::string<24930> 2,boost::mpl::string<>,boost::mpl::string<24930>’实例化的boost::mpl::string<24930>‘从boost::mpl::bind22,从‘boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp:49:1: boost::mpl::protect< boost::mpl::bind2 2,mpl_::arg<1>,mpl_::arg<2> >,0,boost::mpl::string<>’实例化的mpl_::arg<1>,mpl_::arg<2> ::apply,boost::mpl::string<24930> >,boost/mpl/aux_/preprocessed/gcc/apply.hpp:73:1:实例化自'boost::mpl::apply2< boost::mpl::push_back,mpl_::arg<2> >,boost::mpl::string<>,从‘boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp:87:85: 3,boost::mpl::v_iter< boost::mpl::boost::mpl::string<24930>,boost::mpl::string<25444>,boost::mpl::string<25958> >,0l中实例化boost::mpl::string<24930>’boost::mpl::v_iter< boost::mpl::boost::mpl::string<25444>,boost::mpl::string<25958> >,3l,boost::mpl::string<>,boost::mpl::push_back,mpl_::arg<2> >‘boost/mpl/fold.hpp:39:18:实例化自'boost::mpl::fold< boost::mpl::vector,boost::mpl::string<25444>,boost::mpl::string<25958> >、boost::mpl::string<>、boost::mpl::push_back、mpl_::arg<2> >‘source.cpp:18:2:从这里实例化-- string.hpp:207:53: string.hpp:207:53:'value’不是boost/mpl/back_inserter.hpp:18:0文件中的'boost::mpl::string<24930>‘成员,来自boost/mpl/aux_/inserter_algorithm.hpp:18,从boost/mpl/copy.hpp:20,从string.hpp:26,从source.cpp:3: boost/mpl/push_back.hpp:在boost::mpl::push_back< boost::mpl::push_back,boost::mpl::string<24930> >的实例化中,boost::mpl::string<25444>:boost/mpl/aux_/has_type.hpp.has:20:1:

实例化自'const bool boost::mpl::aux::has_type< boost::mpl::push_back< boost::mpl::push_back,boost::mpl::string<24930> >,boost::mpl::string<25444>,mpl_::bool_:value‘boost/mpl/aux_/has_bool.has:20:1:

从'boost::mpl::aux::has_type< boost::mpl::push_back< boost::mpl::push_back,boost::mpl::string<24930> >,boost::mpl::string<25444>,mpl_::bool_‘实例化,从'boost::mpl::quote2< boost::mpl::push_back’实例化

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-06 03:05:40

代码语言:javascript
复制
#include <iostream>
#include <boost/mpl/vector.hpp>
#include <boost/mpl/string.hpp>
#include <boost/mpl/fold.hpp>
#include <boost/mpl/front.hpp>
#include <boost/mpl/deref.hpp>
#include <boost/mpl/placeholders.hpp>
#include <boost/mpl/push_back.hpp>

using namespace boost;

typedef boost::mpl::vector<
   boost::mpl::string<'a','b'>,
   boost::mpl::string<'c','d'>,
   boost::mpl::string<'e','f'>
> slist;


typedef boost::mpl::reverse_fold<
   slist,
   mpl::string<>,
   boost::mpl::copy<mpl::_1, mpl::back_inserter<mpl::_2> >
>::type string;

int main() {
   std::cout << boost::mpl::c_str<string>::value << std::endl;
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4077369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档