、などをすべて使用して、
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
を同時に使用すると未定義の動作が発生するかどうかを示すものは見つかりません。私が知る限り、正規表現オブジェクトに対して編集が行われていないため、同時に使用することによって未定義の動作が引き起こされることはありませんか?
前もって感謝します!