3

我有以下可执行文件。我用 gcc 4.7.2 (g++ foo.cc -std=c++11) 编译它。

在运行时,会抛出异常 regex_error。

我究竟做错了什么 ?

#include <regex>

int main(int, char**){
    std::regex re("\\d");
}

更新异常中的错误代码是error_escape。所以我尝试了“\\d”。它在运行时不会失败,但我不匹配“1”,但它确实匹配“\d”。所以这显然不是我想要的

4

2 回答 2

2

所以答案似乎是GCC4.7 STL中的实现是不完整的。谢谢大家的意见。

与 c++11 正则表达式不匹配

谢谢你和内森恩斯特!

于 2013-03-25T11:19:12.097 回答
-3

为什么不抓住它?

#include <regex>
#include <iostream>

int main(int, char**){
    try {
        std::regex re("\\d");
    } catch(std::exception const& e) {
        std::cout << e.what() << "\n";
    }
}
于 2013-03-22T16:22:05.140 回答