Подтвердить что ты не робот

Boost.Regex vs С++ 11 Regex

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

4b9b3361

Ответ 1

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

Ответ 2

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

Ответ 3

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

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

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