Я только что заметил, что в N3291 помечено изменение ( 5.2.1 Подписка [expr.sub] ):
Раньше было нормально перегрузить operator[]
с помощьюnew braced-init-list :
struct X {
Z operator[](std::initializer_list<int>);
};
X x;
x[{1,2,3}] = 7; // OK: meaning x.operator[]({1,2,3})
Теперь, когда удалено и заменено на:
A braced-init-Список не должен использоваться со встроенным оператором индекса.
В чем проблема?