【发布时间】:2011-12-09 15:01:43
【问题描述】:
将boost::regex 替换为std::regex 因为我们在公司中使用gcc 4.6 我遇到了该类的empty () 方法的问题-它基本上没有从boost::regex 到std::regex 类.我不确定这是 gcc 的问题还是这个方法根本没有成为 C++11 标准,但是那段代码在很大程度上取决于这个特性。所以问题是 - 在 C++11 std::regex 中是否有办法检查表达式是否已设置,或者我应该在余生中坚持使用 boost::regex?
【问题讨论】:
-
@PlasmaHH:真的吗?我以为是。它在 MSVC 中,维基百科在这里也提到了它 - en.wikipedia.org/wiki/C%2B%2B11#Regular_expressions 所以它最终没有在最后一分钟成为标准?
-
@VladLazarenko 我正在查看 N3290,但找不到。
-
@pmr: ...但它是在 TR1 中.. 你知道到底发生了什么吗?
-
"或者我应该在我的余生中坚持使用 boost::regex?" ... 如果
empty()的使用没有完全散布在您的项目中,您也许可以使用它很容易地重构代码以使用正则表达式和boost::optional(或此功能的某些变体)的组合 -
@Martin:我也是这么想的。但是我真的不想为了重构而重构。替换是一回事,但无缘无故花时间重构是另一回事:)