Проблемы с индексным оператором и расширением пакета параметров.C++

Программы на C++. Форум разработчиков
Anonymous
 Проблемы с индексным оператором и расширением пакета параметров.

Сообщение Anonymous »

При синтаксической проверке доступа к подписке с помощью расширения пакета параметров я ожидаю, что следующий код будет работать без каких-либо ошибок. Однако MSVC отклоняет как синтаксис ограничения в предложении require, так и последнее утверждение.
template
concept c = requires(T t, Ts... ts) {
{ t[ts...] } noexcept; // clang ok, gcc ok, msvc nope
};

static_assert(not c); // all ok
static_assert(not c); // all ok
static_assert(c); // clang ok, gcc ok, msvc nope

Это просто ошибка компилятора MSVC? Какое правило стандарта C++23 определяет этот код как законный?
Демо

Сообщение об ошибке MSVC :
(3): error C2760: syntax error: 'noexcept' was unexpected here; expected ';'
(3): error C2760: syntax error: ']' was unexpected here; expected '}'
(8): error C2607: static assertion failed
(8): note: the concept 'c' evaluated to false


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

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