我正在遵循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头文件进行编译时,我得到以下编译器错误:
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发布于 2009-05-29 06:33:43
编辑:原始答案严重过时;特别是链接断开。Boost的当前版本(自2012-02-24以来)为1.49.0。
提到的警告是#include <boost/spirit.hpp>的结果,它是一个不推荐使用的头文件;但是,web上的旧示例使用此表单。要开始使用,请尝试boost tutorials。一旦看到正确的包含和名称空间,就可以很容易地转换大多数旧的示例。
老生常谈:
您必须使用boost 1.39或更高版本(通过SVN)。此演示文稿应该会有所帮助:
简而言之,有一种全新的方式来做事情,以下是要使用的名称空间:
boost::spirit:qi (用于parser)boost::spirit::karma (用于生成器库)官方版本是1.40,所以到那个时候文档可能会更新。
编辑:the doc in the boost SVN repository正在开发中,可能会以一种更忠实的方式反映新的架构。
发布于 2009-05-29 12:36:02
当您包含经典头文件时,解析器位于boost::spirit::classic名称空间中。尝试:
使用命名空间boost::
::classic;
发布于 2009-05-29 06:26:35
当一个库指示某个类/头/方法/等被弃用时,这意味着该库的维护者很可能会停止维护该功能,并可能在将来删除它。我建议尽快切换到建议的头文件,这样以后就不会头疼了。
新的头文件可能会有稍微不同的处理功能的方式,因此您可能需要进行一些代码更改。
(我对boost了解不多,这只是一个一般性的评论)
https://stackoverflow.com/questions/924642
复制相似问题