Boost.Regex против C ++ 11 Regex - PullRequest
       31

Boost.Regex против C ++ 11 Regex

15 голосов
/ 29 сентября 2011

Может ли кто-нибудь объяснить разницу между ними?Что было бы лучше узнать прямо сейчас?Как бы знания передавались от одного к другому и наоборот?

Ответы [ 3 ]

10 голосов
/ 29 сентября 2011

Библиотека регулярных выражений boost превратила его в C ++ 0x, поэтому я предполагаю, что он будет медленно удаляться из boost.Тем не менее, использование boost это хорошо, потому что вы все равно можете использовать его с компиляторами без поддержки C ++ 0x.Так что это действительно зависит от вас.

7 голосов
/ 02 августа 2012

Одним из основных отличий является то, что C ++ 11 не предоставляет синтаксиса Perl для регулярных выражений. Итак, если вы склонны использовать синтаксис Perl, вам нужно использовать библиотеку Boost :: Regex.

0 голосов
/ 11 января 2015

По крайней мере, в Visual Studio 2013 это и связанные имена (cmatch, regex_match) одинаковы в обоих пространствах имен. Они также имеют одинаковый (или похожий?) Интерфейс.

Таким образом, вы можете просто изменить пространство имен, и тот же код будет скомпилирован с другим регулярным выражением без предупреждения и ошибок. И это должно работать так же, конечно.

P.S. Я бы предпочел std :: regex, поскольку он является частью C ++ 11, а boost :: regex - сторонняя библиотека. Я уверен, что через несколько лет boost удалит поддержку boost :: regex.

...