¿Es posible generar un mapa de fusión a partir de una estructura adaptada?
DejarA
ser:
struct A {
int a;
std::string b;
struct keys {
struct a;
struct b;
};
};
Me gustaría generar unfusion::map
de la estructura de tal manera que contiene elfusion::pair
s:fusion::pair<A::keys::a, int>
yfusion::pair<A::keys::b, std::string>
. Algo como
A a;
fusion::make_map<A>(a)
Lo he intentado conBOOST_FUSION_ADAPT_ASSOC_STRUCT
BOOST_FUSION_ADAPT_ASSOC_STRUCT(
A,
(int, a, A::keys::a)
(std::string, b, A::keys::b)
)
Esto adapta A para ser usado como una secuencia asociativa, pero no he encontrado una manera de construir un mapa a partir de ella. En particular, si lo itero obtendré solo los valores. Si pudiera recorrer las claves que serían realmente útiles, porque entonces podría comprimir los valores y las claves para construir un mapa, pero aún no he encontrado la manera de hacerlo.