更换boost::regex用std::regex,因为我们是在我遇到某个问题的公司使用gcc 4.6 empty ()该类的方法-它基本上没有从使它boost::regex成为std::regex类.我不确定这是否是一个gcc的问题,或者这个方法根本没有进入C++ 11标准,但这段代码在很大程度上取决于这个特性.所以问题是 - 在C++ 11 std::regex中是否有一种方法可以检查表达式是否已经设置或者我应该坚持到boost::regex余生?
How*_*ant 10
empty()从std::regex很久以前就被删除了. N1507(2003-09-16)是建议将其删除的原始论文(搜索"什么是无效/空正则表达式?").这个问题是针对当时的std::tr1:regex.它被记录在问题7.28的LWG tr1问题清单中,并包含以下决议:
在科纳讨论.LWG同意默认构造函数应该等同于空字符串的构造.暂时保持开放部分是因为我们需要表达这一点的措辞,部分原因是因为不清楚首先要有theempty()成员函数是否有任何意义.
N1711(2004-11-04)是缺乏的第一个TR1草案basic_regex::empty().从那里它从TR1导入到C++ 11,没有进一步的讨论.