编译 Boost Spirit 关键字解析器示例

Compile Boost Spirit Keyword Parser Example

我在编译 boost 关键字解析器的示例代码时遇到了一些问题。我正在使用 boost 1.63.0gcc 6.3.0 并指定 c++ 11。我 运行:

g++ -std=c++11 -I boost-1.63-0/include keywords-1.cpp

并被一大堆编译器错误击中。 第一个错误是:

no type named 'type' in struct boost::mpl::apply...

我还尝试使用 gcc 4.8.2 编译示例,并在 boost 1.55.0 中启用了 c++ 11 标志,但也收到了类似的大量错误。但是,尝试使用 c++ 03 编译示例时,编译器和 boost 版本都有效。

我试过在 Centos 5 和 Ubuntu 14.04 上编译。我引用的具体例子可以在spirit/repository/example/qi/keywords.cpp

下找到

有谁知道关键字解析器是否会在 c++11 中编译,或者我应该回到使用 Nabialek 技巧来实现这些目的吗?或者有没有人指出正确的方向或提示我做错了什么?

我相信我已经找到了我尝试用 g++ -I boost-1.63.0/include -DBOOST_RESULT_OF_USE_TR1 ~/keywords.cpp 编译的答案,并且它编译成功了。此解决方案是在此处的错误报告中找到的:https://svn.boost.org/trac/boost/ticket/11493