std::string line;
Это бросает std::runtime_error what(): Memory exhausted
:
regex_it = boost::sregex_iterator(line.begin(), line.end(), re);
Это прекрасно работает:
regex_it = boost::make_regex_iterator(line, re);
Кто-нибудь знает, что вызывает разницу в производительности?Библиотека boost :: regex lib скомпилирована в Linux в нерекурсивном режиме по умолчанию.
EDIT: также попытался
regex_it = boost :: cregex_iterator (line.data (), line.data () + line.size (), re);
та же проблема.