Сборка конфигурации отладки с использованием ИЛИ констант std::wregex выдает неожиданное исключение std::regex_errorC++

Программы на C++. Форум разработчиков
Anonymous
Сборка конфигурации отладки с использованием ИЛИ констант std::wregex выдает неожиданное исключение std::regex_error

Сообщение Anonymous »

Я компилирую это с помощью компилятора C++ VS 2022 как «Стандарт ISO C++20 (/std:c++20)» для конфигурации отладки.
Почему это выдает следующее std::regex_error:

regex_error(error_backref): выражение содержало недопустимую обратную ссылку.

Код: Выделить всё

std::wregex re;
bool bCaseSens = true;

re.assign(L"FilE",
std::wregex::ECMAScript |
std::wregex::nosubs |
std::wregex::optimize |
(bCaseSens ? 0 : std::wregex::icase)
);
но это компилируется и работает нормально?

Код: Выделить всё

std::wregex re;
bool bCaseSens = true;

re.assign(L"FilE",
std::wregex::ECMAScript |
std::wregex::nosubs |
std::wregex::optimize
);
ПС. Обратите внимание, что сборка Release не генерирует это исключение.
PS2. Также пробовал использовать более старые версии стандарта C++, эффект тот же.

Подробнее здесь: https://stackoverflow.com/questions/798 ... -unexpecte

Вернуться в «C++»