首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不推荐使用boost spirit标头

不推荐使用boost spirit标头
EN

Stack Overflow用户
提问于 2009-05-29 06:19:16
回答 3查看 3.2K关注 0票数 6

我正在遵循boost::spirit的快速入门指南,当我包含以下内容时会收到此编译器警告:“此头文件已弃用。请使用: boost/spirit/ include /classic_core.hpp”我应该为此担心吗?

(快速入门指南:http://spirit.sourceforge.net/distrib/spirit_1_8_5/libs/spirit/doc/quick_start.html,包含我正在尝试编译的程序的完整源代码:http://spirit.sourceforge.net/distrib/spirit_1_8_5/libs/spirit/example/fundamental/number_list.cpp)

编辑:此外,当我尝试使用推荐的classic_core.hpp和classic_push_back_actor.hpp头文件进行编译时,我得到以下编译器错误:

代码语言:javascript
复制
test7.cpp: In function 'bool parse_numbers(const char*, __gnu_debug_def::vector<double, std::allocator<double> >&)':
test7.cpp:18: error: 'real_p' was not declared in this scope
test7.cpp:18: error: 'push_back_a' was not declared in this scope
test7.cpp:23: error: 'space_p' was not declared in this scope
test7.cpp:23: error: 'parse' was not declared in this scope
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-05-29 06:33:43

编辑:原始答案严重过时;特别是链接断开。Boost的当前版本(自2012-02-24以来)为1.49.0。

提到的警告是#include <boost/spirit.hpp>的结果,它是一个不推荐使用的头文件;但是,web上的旧示例使用此表单。要开始使用,请尝试boost tutorials。一旦看到正确的包含和名称空间,就可以很容易地转换大多数旧的示例。

老生常谈:

您必须使用boost 1.39或更高版本(通过SVN)。此演示文稿应该会有所帮助:

  • http://www.boostcon.com/site-media/var/sphene/sphwiki/attachment/2009/05/07/SpiritV2.pdf

简而言之,有一种全新的方式来做事情,以下是要使用的名称空间:

  • boost::spirit:qi (用于parser)
  • boost::spirit::karma (用于生成器库)

官方版本是1.40,所以到那个时候文档可能会更新。

编辑:the doc in the boost SVN repository正在开发中,可能会以一种更忠实的方式反映新的架构。

票数 11
EN

Stack Overflow用户

发布于 2009-05-29 12:36:02

当您包含经典头文件时,解析器位于boost::spirit::classic名称空间中。尝试:

使用命名空间boost::

::classic;

票数 1
EN

Stack Overflow用户

发布于 2009-05-29 06:26:35

当一个库指示某个类/头/方法/等被弃用时,这意味着该库的维护者很可能会停止维护该功能,并可能在将来删除它。我建议尽快切换到建议的头文件,这样以后就不会头疼了。

新的头文件可能会有稍微不同的处理功能的方式,因此您可能需要进行一些代码更改。

(我对boost了解不多,这只是一个一般性的评论)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/924642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档