我想我注意到了你的问题 在[精神一般]名单上 早。
它有14个意见 - 我做了一些相当深入的调查。可悲的是,据我所知,我不认为Spirit对联合融合结构有任何支持。
事实上,在MSM和Phoenix之外,在我看到fusion :: map被使用的地方没有地方。
您是否有可能只使用std :: map / std :: pair?这是一个很小的概念证明:
#include <boost/spirit/include/karma.hpp> #include <boost/fusion/adapted.hpp> int main() { const auto data = std::map<std::string, double> { { "pi", 3.1415925 }, { "e", 2.718281828 }, { "Answer", 42 } }; namespace karma = boost::spirit::karma; std::cout << karma::format((karma::string << " = " << karma::double_) % karma::eol, data) << std::endl; }
输出:
Answer = 42.0 e = 2.718 pi = 3.142