Функция 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
В чем дело?
Как отмечено в комментариях к вопросу, более старые реализации стандартных библиотек C ++ еще не поддерживали все функции в C ++ 11. Конечно, Libc ++ исключение, потому что он был изначально создан специально для C ++ 11.
В соответствии с этот отчет об ошибке Поддержка для <regex>
в libstdc ++ был реализован только для версии 4.9 GCC. Вы можете проверить текущий статус на Страница состояния libstdc ++.
Можно подтвердить, что ваш пример работает с GCC 4.9, но все еще не работает с GCC 4.8.
Других решений пока нет …