我最近发现 gcc 4.8 中的正则表达式支持是不完整的,它在 gcc 4.9 中得到了真正的实现(参见Is gcc 4.8 or early buggy about regular expressions?)。
因此,想在我的 c++ 程序中使用正则表达式,我按照以下说明将我的 gcc 更新为 4.9(https://askubuntu.com/questions/466651/how-do-i-use-the-latest-gcc-4- 9-on-ubuntu-14-04)。
现在,当我尝试编译我的程序时,它说为了#include <regex>
我必须指定编译器标志-std=c++11
,我这样做了,现在我面临着以前没有的新编译问题(‘constexpr’ needed for in-class initialization of static data member
)。
鉴于此,我认为目前最好坚持使用 gcc 4.8,而不是在编译中指定 gnu++11 标志。回到方块 1。
那么,如果我不想切换到 gcc 4.9 也不想用 c++11 标记编译器,我可以在 c++ 中使用正则表达式吗?还有其他方法吗?
谢谢!
PS:实际上是 c++11 标志导致编译问题,而不是 gcc 的版本,对吧?