Вести ключевое слово self

Vyacheslav Meshkov
Vyacheslav Meshkov

Наверное многие в коде встречали конструкции вроде (*ptr).func(), которые в отличие от ptr->func() выглядят достаточно странно. Примерно то же самое хочется сказать, когда в коде приходится применять конструкции вроде this-> или *this: return *this или (*this)[10] для вызова оператора []. В этом плане представляется интересным ввести ключевое слово self, которое будет являться ни чем иным, как синтаксическим сахаром. По сути аналогом:

#define self (*this)

Получаем на результате

return *this; => return self;

(*this)[10]; => self[10];

this->func(); => self.func(); // вот это требуется достаточно редко, но иногда необходимо

-10
рейтинг
2 комментария
yndx-antoshkka

Точно не взлетит: self уже используется многими людьми в коде. Если сделать это слово ключевым - поломается сборка, поэтому предложение не примут.

Правильным решением было бы сделать this ссылкой на текущий класс, а не указателем. Но это надо было делать 30 лет назад, сейчас уже поздно что-то менять.

yndx-antoshkka
WPMGPRoSToTeMa

В deducing this пропозале присутствует нечто подходящее.

WPMGPRoSToTeMa
Обновлено 
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).
Все предложения