Можно ли использовать объект
std::regex
в нескольких потоках, используяstd::sregex_iterator
,std::regex_match
и т.д.?
Например, будут ли приводить логическое поведение:
bool SomeFunc( const std::string& szString1, const std::string& szString2 )
{
static const std::regex regexTest( "=== ([\\w]+) ===", std::regex_constants::optimize );
std::future<bool> f = std::async( []( std::string szString ) {
return std::regex_match( szString, regexTest );
}, szString1 );
bool b = std::regex_match( szString2, regexTest );
return (b && f.get());
}
Я не могу найти ничего, что говорит о том, что одновременное использование const std::regex
приводит к поведению undefined или нет. Насколько я могу судить, никакие изменения не редактируются для объекта регулярного выражения, поэтому поведение undefined должно быть вызвано одновременным использованием его?
Спасибо заранее!