【发布时间】:2013-07-07 19:39:38
【问题描述】:
是否可以在所有使用
std::sregex_iterator、std::regex_match等的多个线程中使用std::regex对象?
例如,以下是否会产生逻辑行为:
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 会导致未定义的行为。据我所知,没有对正则表达式对象进行任何编辑,因此不应该通过同时使用它来引发未定义的行为?
提前致谢!
【问题讨论】:
标签: c++ regex multithreading c++11