C++ 不推荐使用增压器

C++ 不推荐使用增压器,c++,boost,boost-spirit,C++,Boost,Boost Spirit,我正在遵循boost::spirit的快速入门指南,当我包含以下内容时,我收到了一条编译器警告:“此标题已弃用。请使用:boost/spirit/include/classic_core.hpp”我应该担心吗 (快速入门指南:,包含我试图在此处编译的程序的完整源代码:) 编辑:此外,当我尝试使用推荐的classic_core.hpp和classic_push_back_actor.hpp头进行编译时,会出现以下编译器错误: test7.cpp: In function 'bool parse_n

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

(快速入门指南:,包含我试图在此处编译的程序的完整源代码:)

编辑:此外,当我尝试使用推荐的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
test7.cpp:bool parse_numbers(const char*,uu gnu_debug_def::vector&)函数中:
test7.cpp:18:错误:“real\u p”未在此范围内声明
test7.cpp:18:错误:“push_back_a”未在此作用域中声明
test7.cpp:23:错误:“space\u p”未在此作用域中声明
test7.cpp:23:错误:未在此作用域中声明“parse”

当库指示类/头/方法/等被弃用时,这意味着库的维护者很可能会停止维护该功能,并可能在将来删除它。我建议尽早切换到建议的标题,这样可以避免将来的麻烦

新的头可能有一种稍微不同的处理特性的方法,因此您可能需要进行一些代码更改


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

[编辑:]原始答案严重过时;尤其是链接断了。Boost的当前版本(自2012年2月24日起)为1.49.0

提到的警告是由于
#include
这是一个不推荐使用的标题;然而,web上的旧示例使用此表单。要开始,请尝试。一旦看到正确的include和名称空间,就可以轻松地转换大多数旧示例

[旧答案:]

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

简言之,有一种全新的工作方式,可以使用以下名称空间:

  • boost::spirit:qi
    (用于解析器)
  • boost::spirit::karma
    (用于生成器库)
官方版本是1.40,所以到那时文档可能会更新


编辑:正在进行中,可能会以更忠实的方式反映新的体系结构。

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

使用名称空间boost::spirit::classic