Использование regex_search из библиотеки C ++ regex

Функция regex_search работает не совсем так, как ожидалось.

#include <iostream>
#include <regex>
#include <string>

using namespace std;

int main()
{
string str = "Hello world";
const regex rx("Hello");
cout << regex_search(str.begin(), str.end(), rx) << endl;
return 0;
}

Выход

0

В чем дело?

2

Решение

Как отмечено в комментариях к вопросу, более старые реализации стандартных библиотек C ++ еще не поддерживали все функции в C ++ 11. Конечно, Libc ++ исключение, потому что он был изначально создан специально для C ++ 11.

В соответствии с этот отчет об ошибке Поддержка для <regex> в libstdc ++ был реализован только для версии 4.9 GCC. Вы можете проверить текущий статус на Страница состояния libstdc ++.

Можно подтвердить, что ваш пример работает с GCC 4.9, но все еще не работает с GCC 4.8.

1

Другие решения

Других решений пока нет …