LINUX.ORG.RU

История изменений

Исправление m0rph, (текущая версия) :

Передавая QString по константной ссылке, ты фактически передаешь только саму ссылку. При передаче по значению будет вызван конструктор копирования (надо же где-то увеличить количество ссылок на общие данные). Увеличение счетчика ссылок - атомарная операция, которая теоретически может влиять на состояние процессорного конвейера. Уже только по этим причинам передача QString по константной ссылке гораздо быстрее передачи по значению. Кроме того, этот способ более универсален: по ссылке ты можешь передавать любой объект, не заботясь о его внутреннем устройстве, а при передаче по значению тебе нужно в каждом конкретном случае точно знать, что это не дает лишних накладных расходов.

Исходная версия m0rph, :

Передавая QString по константной ссылке, ты фактически передаешь только саму ссылку. При передаче по значению, даже не смотря на тот факт, что размер QString равен размеру указателя, будет вызван конструктор копирования (надо же где-то увеличить количество ссылок на общие данные). Увеличение счетчика ссылок - атомарная операция, которая теоретически может влиять на состояние процессорного конвейера. Уже только по этим причинам передача QString по константной ссылке гораздо быстрее передачи по значению. Кроме того, этот способ более универсален: по ссылке ты можешь передавать любой объект, не заботясь о его внутреннем устройстве, а при передаче по значению тебе нужно в каждом конкретном случае точно знать, что это не дает лишних накладных расходов.