Опции для использования С++ 11 <regex> с составителем около 2013 года
Существует ли полная/правильная реализация (прямо сейчас) для регулярного выражения С++ 11?
Примечание по поддержке компилятора и поддержки библиотеки:
Поддержка компилятора= компилятор распознает любой новый синтаксис, добавленный к языку для рассматриваемой функции. Код, использующий новую функцию, добавленную в вашу программу, будет скомпилирован.
Поддержка библиотеки= обновлена библиотека, чтобы реально реализовать эту функцию. Код, добавленный в вашу программу и связанный с библиотекой, будет работать.
* Изменить: я обновил это резюме с новой информацией и перевел его в ответ ниже.
Ответы
Ответ 1
В отношении политики обмена стеками об этом можно ответить на свой вопрос. Я обновляю
сводную часть вопроса с новой информацией и переместить его в этот ответ.
GCC: Не работает рабочий regex
, пока GCC 4.9.0
Clang: Компиляция regex
Стандартная библиотека:
- regex поддерживается только libstdС++, поскольку GCC 4.9.0 (стандартная библиотека GNU)
- regex поддерживается libС++ (стандартная библиотека LLVM)
- libС++ полностью подтвержден на Mac OS
- libС++ может быть создан из источника для других платформ.
- (Я создал и проверил некоторое регулярное выражение на Linux)
MSVC: Regex работает с MSVC 2010 (за ответ от @Laurent и связанных голосов)
подталкивания:
Регулярное выражение С++ 11 "основано на" или "смоделировано после" Boost.
Я полагаю, это означает не совсем то же самое.
Если есть окончательный список различий, прокомментируйте ссылку.
Ответ 2
Я использовал модуль <regex>
с MSVC 2010, и он отлично работал для моей потребности (используя документ из cplusplus.com).
Итак, если вы собираетесь разрабатывать в среде Windows, я бы рекомендовал выбрать MSVC 2010 или 2012. Он работает из коробки!
Ответ 3
Clang - это функция С++ 11. Вы можете проверить, какая функция доступна в этой версии: Возможности Clang С++ 11