boost :: regex vs std :: regex - 找不到empty()方法?

7 c++ regex boost std c++11

更换boost::regexstd::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,没有进一步的讨论.