Có thể sử dụng đối tượng
std::regex
trong nhiều chủ đề sử dụngstd::sregex_iterator
,std::regex_match
, v.v. không?Đồng thời sử dụng std :: regex, hành vi được xác định?
Ví dụ, sẽ là sản phẩm vi logic sau:
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());
}
tôi không thể tìm thấy bất cứ điều gì trong đó nêu dù sử dụng một const std::regex
đồng thời dẫn đến hành vi undefined hay không. Theo như tôi có thể nói, không có chỉnh sửa đang được thực hiện cho đối tượng regex vì vậy không có hành vi không xác định nên được gây ra bằng cách sử dụng nó đồng thời?
Cảm ơn trước!
Cảm ơn bạn, đó là những gì tôi đã tìm; Tôi chỉ muốn xác nhận. –
@ronag Bạn có thể giải thích câu trả lời của bạn tại sao họ chọn cho đặc tả này không? Ngoài ra làm thế nào điều này đạt được với một lớp học mà không phải là một phần của thư viện chuẩn C++? Tôi hy vọng bạn sẽ tìm thấy thời gian để trả lời những câu hỏi đó! :) – Tim
@Tim "_Also làm thế nào điều này đạt được với một lớp học mà không phải là một phần của thư viện chuẩn C++? _" Tôi không hiểu câu hỏi của bạn ... – curiousguy