std::regex
개체를 모두std::sregex_iterator
,std::regex_match
등을 사용하는 여러 스레드에서 사용할 수 있습니까? 예를 들어동시 사용 std :: regex, 정의 된 동작?
, 다음과 같은 생산 논리적 행동 것 : 나는 const 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());
}
은. 내가 말할 수있는 한, regex 객체에 대한 편집은 일어나지 않으므로 정의되지 않은 동작을 동시에 사용해서는 안된다.
미리 감사드립니다.
감사합니다. 방금 확인을 원했어. –
@ronag 왜이 사양을 선택했는지 대답을 설명해 주시겠습니까? 또한 C++ 표준 라이브러리의 일부가 아닌 클래스를 사용하여이 작업을 수행하는 방법은 무엇입니까? 나는 당신이 그 질문에 대답 할 수있는 시간을 찾을 수 있기를 바랍니다! :) – Tim
@Tim "_ C++ 표준 라이브러리의 일부가 아닌 클래스로 어떻게 이것을 구현할 수 있습니까? _"귀하의 질문을 이해할 수 없습니다 ... – curiousguy