Положение операнда перегрузки оператора cpp [] vs == - PullRequest
0 голосов
/ 29 сентября 2018

Чем char& operator[] отличается от bool operator==?Один помещает операнд между [], а другой помещает операнд после ==.Как он узнает, куда поместить операнд?Есть ли какая-нибудь особенность для открытых и закрывающих скобок?

1 Ответ

0 голосов
/ 29 сентября 2018

Как он узнает, куда поместить операнд?

Гм.Поскольку стандарт так говорит?

§11.5.5 Подписка [over.sub] / 1 :

operator[] должна быть нестатическим элементомфункция с ровно одним параметром.Он реализует синтаксис подписки

выражение postfix [ expr-or-braced-init-list ]

Таким образом, выражение подписки x[y] интерпретируется как x.operator[](y) для объекта класса x типа T, если существует T​::​operator[](T1) и если оператор выбран в качестве функции наилучшего соответствия с помощью механизма разрешения перегрузки ([over.match.best]).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...