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

标签 c++ c++11 boost boost-spirit boost-spirit-qi

<分区>

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

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

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

struct boost::mpl::apply 中没有名为“type”的类型...

我还尝试使用 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

关于c++ - 编译 Boost Spirit 关键字解析器示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42839282/

相关文章:

c++ - std::move 如何使原始变量的值无效?

c++ - std::vector 迭代时自然线程安全

c++ - Boost ASIO 网络服务器/客户端

c++ - 共享内存中的 multi_index 容器

c++ - 在 C++ 中使用 'boost::system::error_code'

c++ - 如何填充 Vec3b 数组

CUDA 中的 C++11 别名模板

c++ - 有没有办法在c++03中模拟c++11 'override'说明符的效果?

c++ - 计算 (a^b)%c 其中 0<=a,b,c<=10^18

c++ - 如何以编程方式在控制台应用程序中选择文本?