В C ++ лучше не использовать передачу по значению для аргументов функции, которые используют RTTI? - PullRequest
0 голосов
/ 24 июня 2019

Согласно " Оптимизация программного обеспечения на C ++ " Агнера Фога (2018-08-18), стр. 50, если какое-либо из этих условий не выполняется, обычно быстрее передать указатель или ссылкук объекту.

  1. объект настолько мал, что помещается в один регистр
  2. у объекта нет конструктора копирования и деструктора
  3. у объекта нетвиртуальный член
  4. объект не использует идентификацию типа времени выполнения (RTTI)

Обоснование первых двух условий довольно очевидно.Третье условие связано с добавлением vptr к объекту, что делает его «слишком большим» для эффективной передачи по значению.Это правильно?

Кто-нибудь может объяснить, пожалуйста, 4-е условие?

...