É 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::pairs: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.

questionAnswers(2)

yourAnswerToTheQuestion