Можно ли создать карту слияния из адаптированной структуры?
ПозволятьA
быть:
struct A {
int a;
std::string b;
struct keys {
struct a;
struct b;
};
};
Я хотел бы создатьfusion::map
из структуры, так что он содержитfusion::pair
s:fusion::pair<A::keys::a, int>
а такжеfusion::pair<A::keys::b, std::string>
, Что-то вроде
A a;
fusion::make_map<A>(a)
Я пробовал сBOOST_FUSION_ADAPT_ASSOC_STRUCT
BOOST_FUSION_ADAPT_ASSOC_STRUCT(
A,
(int, a, A::keys::a)
(std::string, b, A::keys::b)
)
Это адаптирует A для использования в качестве ассоциативной последовательности, но я не нашел способа построить карту из нее. В частности, если я перебираю его, я получаю только значения. Если бы я мог перебирать ключи, которые были бы действительно полезны, потому что тогда я мог бы сжать значения и ключи для построения карты, но я пока не нашел способа сделать это.