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
同时使用是否会导致未定义行为的内容。据我所知,没有对正则表达式对象进行任何编辑,因此不应该通过同时使用它来引发未定义的行为?
提前致谢!