C++ Boost.Spirit mini_xml2.cpp示例无法由C++;11,增压1.55

C++ Boost.Spirit mini_xml2.cpp示例无法由C++;11,增压1.55,c++,boost,c++11,boost-spirit,C++,Boost,C++11,Boost Spirit,c++0x编译器未能编译boost.spirit示例(非c++0x编译器没有错误) 将放置错误日志。我怀疑这个问题与非终结符属性有关(第159-163行),但我可能错了 c++版本(Ubuntu/Linaro 4.8.1-10ubuntu9)4.8.1 Boost版本1.55 我在boost tracker上创建了,但没有答案 有人有同样的错误吗 解决了:我找到了一个解决方案 如前所述,在现代编译器上,您实际上需要使用Phoenix V3,因为Phoenix V2依赖于旧的协议结果,而在较新

c++0x编译器未能编译boost.spirit示例(非c++0x编译器没有错误)

将放置错误日志。我怀疑这个问题与非终结符属性有关(第159-163行),但我可能错了

  • c++版本(Ubuntu/Linaro 4.8.1-10ubuntu9)4.8.1
  • Boost版本1.55
我在boost tracker上创建了,但没有答案

有人有同样的错误吗

解决了:我找到了一个解决方案


如前所述,在现代编译器上,您实际上需要使用Phoenix V3,因为Phoenix V2依赖于旧的协议结果,而在较新版本的boost库中,它不再总是包含

此外,在某些编译器上(AFAIK至少是clang),默认情况下启用了使用DECLTYPE方法的BOOST\u RESULT\u,这可能会导致支持库忽略协议的TR1结果(成本更高)

好消息是,在我们一再成为绊脚石之后,官方决定如下:

2013年12月14日;凌晨3:38(乔尔德古兹曼)
(另附)

Boost C++十多年后,我终于从凤凰2号退役了 增强Spirit代码库。我感到悲伤。这就像是向一个好朋友告别。向前 凤凰3号

就在7天前:)


因此,在不久的将来,这个问题将得到解决。

“因此,在不久的将来,这个问题将得到解决。”有了它,这个标签中的四分之三的问题:)。好的,四分之三可能是一个延伸,但是的,引用我的邮件列表:“我无法记录PhoenixV3用精神解决人们问题的次数。它是一个C++的编译器,其中有很多是C++的编译器。
$> c++ -std=c++0x mini_xml2.cpp (errors)
$> c++ mini_xml2.cpp (no errors)
// Add this macro
#define BOOST_SPIRIT_USE_PHOENIX_V3