首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从mpl::vector生成fusion::vector

从mpl::vector生成fusion::vector
EN

Stack Overflow用户
提问于 2009-06-24 07:40:49
回答 2查看 2.5K关注 0票数 3

如何从mpl::vector生成fusion::vector?如何从fusion::vector生成mpl::vector

代码语言:javascript
复制
BOOST_MPL_ASSERT((is_same<
                  fusion::vector<int, char>,
                  generate_fusion_vector<mpl::vector<int, char> >::type >));

BOOST_MPL_ASSERT((is_same<
                  mpl::vector<int, char>,
                  generate_mpl_vector<fusion::vector<int, char> >::type >));

我需要generate_fusion_vectorgenerate_mpl_vector元函数。我可以编写自己的元函数,但我怀疑它们已经存在。

我以前有过使用help result_of::as_map生成fusion::map的经验,但在当前的boost(主干,1.39 )中会出现这样的错误:

代码语言:javascript
复制
D:\Libraries\boost_trunk\boost/fusion/sequence/intrinsic/size.hpp(56) : error C2903: 'apply' : symbol is neither a class template nor a function template
        D:\Libraries\boost_trunk\boost/fusion/container/vector/convert.hpp(23) : see reference to class template instantiation 'boost::fusion::result_of::size' being compiled
        with
        [
            Sequence=boost::mpl::vector
        ]
        temp.cpp(71) : see reference to class template instantiation 'boost::fusion::result_of::as_vector' being compiled

我不明白这是怎么回事?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-24 09:09:58

当fusion接受mpl类型作为函数的参数时,您可以尝试这样做:

代码语言:javascript
复制
BOOST_MPL_ASSERT((is_same<
fusion::vector<int, char>,
fusion::result_of::as_vector<mpl::vector<int, char> >::type >));

编辑:

我认为这对您不起作用的原因是您必须包含某些头文件以在fusion中启用mpl兼容性。

代码语言:javascript
复制
#include <boost/fusion/adapted/mpl.hpp>
#include <boost/fusion/include/mpl.hpp>
票数 7
EN

Stack Overflow用户

发布于 2009-11-19 10:51:42

我不知道你们是否还在做char,int,但是我遇到了同样的错误,我的问题是,我试图做一个长度为11的向量,但是FUSION_MAX_VECTOR_SIZE是10。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1036924

复制
相关文章

相似问题

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