std::regex在VS2013中的一个坑

来源:互联网 发布:天房网络客服电话 编辑:程序博客网 时间:2024/05/19 10:41

不要给std::regex_xxx函数传递临时std::string对象

std::regex_xxx函数第一个参数接收一个std::string引用类型,而VS2013的编译器允许临时对象传递给引用类型的参数。如果向std::regex_xxx函数传递一个临时std::string对象,后续使用第二个参数std::match_result中的结果时,会导致程序崩溃,可能是因为匹配结果只是保存了基于源串的迭代器,但是使用这些迭代器时,临时对象已经析构了。

0 0