我是 boost::fusion 和 boost::mpl 库的新手。谁能告诉我这两个库之间的主要区别?
到目前为止,我只使用了 fusion::vector 和其他一些简单的东西。现在我想使用 fusion::map 或 MPL::map 但我不知道如何选择合适的。
我需要将简单类型映射到复杂类型(alisa 类型)。目前我有以下片段,两者都完全符合我的需要。
提升::融合:
typedef boost::fusion::map<
boost::fusion::pair<AliasNames::test1,int>,
boost::fusion::pair<AliasNames::test2,double>,
boost::fusion::pair<AliasNames::test3,float>
> TmapAssociations1;
typedef boost::fusion::result_of::value_at_key<TmapAssociations,AliasNames::test1>::type t;
升压::MPL:
typedef boost::mpl::map<
boost::mpl::pair<AliasNames::test1,int>,
boost::mpl::pair<AliasNames::test2,double>,
boost::mpl::pair<AliasNames::test3,float>
> TmapAssociations2;
boost::mpl::at<TmapAssociations2,AliasNames::test1>::type t2;
MPL和融合有什么区别吗?是否存在一个库比另一个库更受青睐的情况?
谢谢您的回复。