(Это не вопрос о перегрузке оператора. в общем.)
Мы знаем это Есть много веских причин использовать методы установки и получения.
Что ж, тогда мне кажется странным, что это не точки настройки доступа к элементу, т. Е. Если класс A имеет элемент данных x, то использование x в контексте lvalue на самом деле не просто использует x, а скорее вызывает некоторый метод (скажем, A::get_x_lvalue()
, не берите в голову синтаксис), который по умолчанию
typename std::add_reference<decltype(x)>::type A::get_x_lvalue() { return x; }
и может быть реализовано как переопределение, и аналогично, когда x используется в константе prvalue, вызовет переопределяемый
decltype(x) A::get_x_prvalue() const { return x; }
… аналогично, скажем, как вы делаете это в Javascript.
Мой вопрос:
Задача ещё не решена.
Других решений пока нет …