C++ Boost融合作为映射转换行为

C++ Boost融合作为映射转换行为,c++,boost,c++11,C++,Boost,C++11,我有以下两个boost::fusion映射 namespace bf = boost::fusion; typedef bf::map<bf::pair<char,float>,bf::pair<int,double>> FusionMap; typedef bf::result_of::at_key<FusionMap, char>::type localType; // fine typedef bf::vector<bf::pair&

我有以下两个boost::fusion映射

namespace bf = boost::fusion;
typedef bf::map<bf::pair<char,float>,bf::pair<int,double>> FusionMap;
typedef bf::result_of::at_key<FusionMap, char>::type localType; // fine

typedef bf::vector<bf::pair<char,float>,bf::pair<int,double>> FusionVec;
typedef bf::result_of::as_map<FusionVec> FusionMap2;
typedef bf::result_of::at_key<FusionMap2, char>::type localType2; // compile error
namespace bf=boost::fusion;
typedef bf::map FusionMap;
typedef bf::result_of::at_key::type localType;//好的
typedef bf::向量融合向量;
typedef bf::result_of::as_map FusionMap2;
typedef bf::result_of::at_key::type localType2;//编译错误
第一个版本在第二个版本给我一个编译错误的地方工作。我的编译器是VS2010。

我是否以错误的方式使用了
as_map
功能。我假设两个贴图应该是相同的。

FusionMap2
定义的末尾缺少一个
::type

多尴尬啊。这花了我几个小时,我没有看到这一点。+1对于能够发现这样的错误表示钦佩。再见!