boost :: fusion访问关键视图的关键类型作为地图

时间:2013-11-15 11:23:21

标签: c++ boost-fusion

我正在尝试将ash框架转换为c ++以合并到我的项目中,我的开发环境是Vista 32和Visual C ++ 2008 Express,我正在使用boost_1_37_0库,我没有计划升级environemt直到我达到一些结果...

假设:

typedef Component Pcomponent;
typedef WaitForstart2 Pcomponent2;
typedef boost::fusion::pair<ComponentWONTEXISTS,Pcomponent> component_pair1;
typedef boost::fusion::pair<WaitForstart2,Pcomponent2> component_pair2;

typedef boost::fusion::map<component_pair1> componentDictType1;
typedef boost::fusion::map<component_pair2> componentDictType2;

typedef boost::fusion::joint_view<componentDictType1, componentDictType2>joincomponentDictType;

我无法使用at_key

解决如何访问类型的问题
boost::fusion::at_key<ComponentWONTEXISTS, dictionaryjoint>(boost::fusion::as_map(dictionaryjoint));

谢谢,

P.S:我很着急,但我会尝试重新格式化问题

此致

1 个答案:

答案 0 :(得分:1)

这很有趣,但我想我找到了解决方案:

    typedef boost::fusion::result_of::as_map<boost::fusion::joint_view<componentDictType1, componentDictType2> >::type MAPTYPE;
    MAPTYPE aDict;
    Pcomponent ptempj3 = boost::fusion::at_key<ComponentWONTEXISTS,MAPTYPE>(aDict);