У меня есть две следующие карты 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
Первая версия работает, тогда как вторая дает мне ошибку компиляции.Мой компилятор VS2010.
Я неправильно использую функцию as_map
.Я предположил, что обе карты должны быть идентичны.