Согласно " Оптимизация программного обеспечения на C ++ " Агнера Фога (2018-08-18), стр. 50, если какое-либо из этих условий не выполняется, обычно быстрее передать указатель или ссылкук объекту.
- объект настолько мал, что помещается в один регистр
- у объекта нет конструктора копирования и деструктора
- у объекта нетвиртуальный член
- объект не использует идентификацию типа времени выполнения (RTTI)
Обоснование первых двух условий довольно очевидно.Третье условие связано с добавлением vptr к объекту, что делает его «слишком большим» для эффективной передачи по значению.Это правильно?
Кто-нибудь может объяснить, пожалуйста, 4-е условие?