É possível gerar um mapa de fusão a partir de uma estrutura adaptada?
DeixeiA
estar:
struct A {
int a;
std::string b;
struct keys {
struct a;
struct b;
};
};
Eu gostaria de gerar umfusion::map
da estrutura de tal modo que contém ofusion::pair
s:fusion::pair<A::keys::a, int>
efusion::pair<A::keys::b, std::string>
. Algo como
A a;
fusion::make_map<A>(a)
Eu tentei comBOOST_FUSION_ADAPT_ASSOC_STRUCT
BOOST_FUSION_ADAPT_ASSOC_STRUCT(
A,
(int, a, A::keys::a)
(std::string, b, A::keys::b)
)
Isso adapta A para ser usado como uma seqüência associativa, mas eu não encontrei uma maneira de construir um mapa a partir dele. Em particular, se eu percorrer, obtenho apenas os valores. Se eu pudesse fazer uma iteração sobre as teclas que seria realmente útil, porque eu poderia compactar os valores e as chaves para construir um mapa, mas ainda não encontrei uma maneira de fazer isso.