Пусть A
be:
struct A {
int a;
std::string b;
struct keys {
struct a;
struct b;
};
};
Я хотел бы сгенерировать a 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, который будет использоваться как ассоциативная последовательность, но я не нашел способ построить из него карту. В частности, если я перебираю его, я получаю только значения. Если бы я мог перебирать ключи, которые были бы действительно полезны, потому что тогда я мог бы закрепить значения и ключи для построения карты, но я еще не нашел способ сделать это.