Информация об изменениях

Сообщение Re[3]: Ещё немного метапрограммирования от 22.12.2022 15:11

Изменено 22.12.2022 15:13 rg45

Re[3]: Ещё немного метапрограммирования
Здравствуйте, SomeOne_TT, Вы писали:

R>> void Copy(const A& a) { *this = a; }


SO_>Давненько не писал на плюсах, похоже, забыл многое — как это присваивание работает?


*this — это lvalue выражение, доступное для присваивания. Работает так же, как если бы мы написали:

A& t = *this;
t = a;
Re[3]: Ещё немного метапрограммирования
Здравствуйте, SomeOne_TT, Вы писали:

R>> void Copy(const A& a) { *this = a; }


SO_>Давненько не писал на плюсах, похоже, забыл многое — как это присваивание работает?


*this — это lvalue выражение, доступное для присваивания. Работает так же, как если бы мы написали:

A& t = *this;
t = a;


P.S. Оператор присваивания здесь может быть как определенным пользователем, так и автоматически сгенерированным компилятором, это уже не суть.