Czy można wygenerować mapę fuzji z dostosowanej struktury?
PozwolićA
być:
struct A {
int a;
std::string b;
struct keys {
struct a;
struct b;
};
};
Chciałbym wygenerowaćfusion::map
ze struktury takiej, że zawierafusion::pair
s:fusion::pair<A::keys::a, int>
ifusion::pair<A::keys::b, std::string>
. Coś jak
A a;
fusion::make_map<A>(a)
Próbowałem zBOOST_FUSION_ADAPT_ASSOC_STRUCT
BOOST_FUSION_ADAPT_ASSOC_STRUCT(
A,
(int, a, A::keys::a)
(std::string, b, A::keys::b)
)
To dostosowuje A do użycia jako sekwencji asocjacyjnej, ale nie znalazłem sposobu na zbudowanie z niego mapy. W szczególności, jeśli iteruję po nim, otrzymuję tylko wartości. Gdybym mógł iterować po klawiszach, które byłyby bardzo pomocne, ponieważ wtedy mógłbym zipować wartości i klucze do zbudowania mapy, ale nie znalazłem jeszcze sposobu, aby to zrobić.