c ++ STL中的正则表达式

Rad*_*mko 7 c++ regex stl

STL中是否有任何本地库经过测试并且无需任何额外的编译器选项即可运行?我尝试使用<regex>,但编译器输出:

在/usr/include/c++/4.3/regex:40中包含的文件中,来自main.cpp:5:/usr/include/c++/4.3/c++0x_warning.h:36:2:错误:#error此文件需要编译器和库支持即将推出的ISO C++标准C++ 0x.此支持目前是实验性的,必须使用-std = c ++ 0x或-std = gnu ++ 0x编译器选项启用.

Ken*_*oom 13

G ++ 4.3(也可能是后来的版本)只关注头文件以获得最大的标准一致性.

如果您正在使用C++ 98(当前标准已经存在一段时间)进行编程,那么在技术报告1中添加了正则表达式支持,并且头文件位于特殊tr1目录中,并且内容在特殊的命名空间std::tr1.

在新的C++ 0x标准中,正则表达式支持已合并到标准库中,因此可以在头regex和名称空间中找到它std.

G ++确保您为--std=命令行中指定的版本使用正确的版本,即使在内部它们都是相同的实现.

因此,要使正则表达式工作而不切换到--std=c++0x,只需

#include <tr1/regex>
Run Code Online (Sandbox Code Playgroud)

  • 这是一个单独的问题.单独询问. (5认同)

Col*_*len 5

我很确定在C++ 0x中添加了正则表达式支持,因此在此之前没有支持它的STL事物.如果您不想使用c ++ 0x,则可以使用Boost,但这不在STL中.