【问题标题】:How can I use boost::mpl::fold with a boost::fusion::map?如何将 boost::mpl::fold 与 boost::fusion::map 一起使用?
【发布时间】:2009-12-30 13:59:55
【问题描述】:

当我尝试编译时:

#include <boost/fusion/container/map.hpp>
#include <boost/mpl/fold.hpp>

int main(int argc, char** argv)
{
    typedef boost::fusion::map
    <
        boost::fusion::pair<int, const char*>,
        boost::fusion::pair<long, char>
    > FuMap;

    FuMap fuMap("hello", 'w');

    unsigned val = boost::mpl::fold
    <
        FuMap, boost::mpl::int_<0>, boost::mpl::next<boost::mpl::_1>
    >::type::value;
}

我收到以下错误:

"...boost/mpl/begin_end.hpp", line 35: Error, nofieldfnd: 
apply is not a member of 
boost::mpl::begin_impl<boost::fusion::fusion_sequence_tag>.

来自 fusion 文档:“Fusion 提供全轮兼容性 与 MPL。融合序列完全符合 MPL 序列和 MPL 序列与 Fusion 完全兼容。您可以使用 Fusion 如果您只想处理类型,请使用 MPL 上的序列。”

当我通过 boost::mpl::map 时,它可以工作。

有什么线索吗?

【问题讨论】:

    标签: c++ boost boost-mpl boost-fusion


    【解决方案1】:

    我在http://news.gmane.org/gmane.comp.lib.boost.user 提出了同样的问题,Christopher Schmidt 的回答是正确的:

    #include <boost/fusion/mpl.hpp>
    

    应该解决你的问题”

    【讨论】:

    • 抱歉,小于和大于删除了包含。现在已经修复了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多