LINUX.ORG.RU

История изменений

Исправление lwo, (текущая версия) :

По const-ности объекта, на котором метод вызывается. Его квалификация и категория значения тоже часть сигнатуры и важны при выборе перегрузки наравне с аргументами.

То же самое, что перегрузки вида

template<typename T>
struct Array {
  ...
  T& operator[](size_t index);
  const T& operator[](size_t index) const;
};

В C++23 это даже окончательно признали и большей частью убрали необходимость в дупликации кода (которая в некоторых случаях может быть далеко не двойная), а попутно решили ещё несколько проблем. См. deducing this.

Исходная версия lwo, :

По const-ности объекта, на котором метод вызывается. Его квалификация и категория значения тоже часть сигнатуры и важны при выборе перегрузки наравне с аргументами.

То же самое, что перегрузки вида

template<typename T>
struct Array {
  ...
  T& operator[](size_t index);
  const T& operator[](size_t index) const;
};