Я этого не понимаю:
(7.6.1) Два последовательных левых символа квадратных скобок появляются только тогда, когда вводит атрибут -специальный. [Примечание: если две последовательные левые квадратные скобки появляются там, где спецификатор атрибута не разрешен, программа имеет неправильный формат , даже если скобки соответствуют альтернативной грамматике производство. —в конце примечания] [Пример: (немного изменено из исходного кода)
// ...
void f() {
int x = 42, y[5];
// ...
y[[] { return 2; }()] = 2; // error even though attributes are not allowed
// in this context.
}
Для какой альтернативной грамматики можно использовать [[
? Будет ли пример действительным, если атрибуты не существуют (и что делает пример)?