14

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

前もって感謝します!

4

1 に答える 1