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

Сообщение Re[3]: Интересная тема: This-pointing Classes от 26.07.2025 12:49

Изменено 26.07.2025 12:51 rg45

Re[3]: Интересная тема: This-pointing Classes
Здравствуйте, T4r4sB, Вы писали:

TB>Если ты про RVO/NRVO, то на нём это никак не должно сказываться, потому что адрес объекта не меняется. Так что даже при запрете на мув, такой код должен отлично работать:

TB>
TB>Unmovable foo() {
TB>  Unmovable local(1, 2);
TB>  local.mutate();
TB>  return local;
TB>}
TB>


Не должен. Это случай NRVO — перемещения МОЖЕТ не быть, но оно должно быть разрешено.
Re[3]: Интересная тема: This-pointing Classes
Здравствуйте, T4r4sB, Вы писали:

TB>Если ты про RVO/NRVO, то на нём это никак не должно сказываться, потому что адрес объекта не меняется. Так что даже при запрете на мув, такой код должен отлично работать:

TB>
TB>Unmovable foo() {
TB>  Unmovable local(1, 2);
TB>  local.mutate();
TB>  return local;
TB>}
TB>


Не должен. Это случай NRVO — перемещения МОЖЕТ не случиться, но оно должно быть разрешено.

А вот RVO обязано работать, даже при запрещённом перемещении:

Unmovable foo() {
  return Unmovable(1, 2);
}