Re: Ref-qualified member functions
От: rg45 СССР  
Дата: 31.05.23 15:55
Оценка: 4 (1) +2
Здравствуйте, Videoman, Вы писали:

V>Пытаюсь окончательно разобраться с безопасным и быстрым возвратом тяжелых объектов. Правильно ли я понимаю принцип, или можно короче? Есть явные ляпы и ошибки?


Есть один нюансик.

Вот такое использование продлевает время жизни подобъекта m_some до выхода из текущего блока:
auto&& huge = carier{}.m_some;


Тогда как вот такое использование создает "битую" ссылку:
auto&& huge = carier{}.get_huge();


И самое печальное то, что при помощи функций-членов (геттеров) нет возможности получить поведение, равноценное прямому доступу к члену-данному. Но если возвращаемый тип действительно имеет легковесное перемещение, то, возможно, имеет смысл вместо rvalue ссылок возвращать объект по значению. В этом случае появляется дополнительное перемещение, но становится меньше возможностей получения невалидных ссылок.
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 31.05.2023 16:00 rg45 . Предыдущая версия . Еще …
Отредактировано 31.05.2023 15:57 rg45 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.