Было предложено членом команды, что с использованием такого типа:
return Demo{ *this };
был лучше, чем:
return Demo(*this);
Предполагая простой класс следующим образом:
class Demo {
public:
int value1;
Demo(){}
Demo(Demo& demo) {
this->value1 = demo.value1;
}
Demo Clone() {
return Demo{ *this };
}
};
Я признаю, что раньше не видел синтаксис { *this }
, и не смог найти ссылку, которая объяснила это достаточно хорошо, и я понял, как эти два параметра отличаются. Есть ли преимущество в производительности, выбор синтаксиса или что-то еще?