Прохождение примитивов по значению

Я читаю Скотта Мейрса C ++ и теперь раздел о passing-reference-to-const, Он сказал, что для пользовательских типов почти всегда хорошо передавать его по ссылкам на const, в отличие от встроенных типов.

Мой вопрос заключается в том, почему встроенные типы должны передаваться по значению. Почему это более эффективно? Я думаю, что они могут быть внесены в регистры, но разве это единственная причина?

0

Решение

Когда вы передаете ссылку, за кулисами она передает указатель. Это более эффективно, чем прохождение всей структуры, которая может быть очень большой.

Все примитивные типы имеют одинаковый размер с указателем (в худшем случае они могут быть в два раза больше). Некоторые даже меньше — char равен 1 байту, а указатели обычно составляют 4 или 8 байтов. Так что нет никакой эффективности, получаемой путем передачи по ссылке вместо передачи самого значения.

5

Другие решения

Других решений пока нет …