更换boost::regex
with std::regex
由于我们在公司使用 gcc 4.6 我遇到了一个问题empty () http://www.boost.org/doc/libs/release/libs/regex/doc/html/boost_regex/ref/basic_regex.html#boost_regex.basic_regex.empty该类的方法 - 它基本上不是从boost::regex
into std::regex
班级。我不确定这是 gcc 的问题还是这个方法根本没有进入 C++11 标准,但那段代码很大程度上依赖于这个功能。所以问题是 - C++11 有没有办法std::regex
检查表达式是否已设置或者我应该坚持boost::regex
我的余生?
empty()
被删除了std::regex
很久以前。N1507 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1507.htm(2003-09-16) 是建议删除它的原始论文(搜索“什么是无效/空正则表达式?”)。这个问题针对的是当时的情况std::tr1:regex
。它在 LWG tr1 问题列表中记录为问题 7.28,并包含以下决议:
在科纳进行了讨论。 LWG 同意默认构造函数应该
相当于从空字符串构造。保持此状态打开
现在部分是因为我们需要表达这一点的措辞,部分是因为
因为尚不清楚是否有任何意义empty()
首先是成员函数。
N1711 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1711.pdf(2004-11-04) 是第一个 TR1 草案缺少basic_regex::empty()
。从那里它从 TR1 导入到 C++11 中,没有进一步讨论。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)