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

Respuestas a la pregunta(2)

Su respuesta a la pregunta