Я понимаю поведение const
-квалифицированных типов данных. Мне любопытно, однако, есть ли какой-либо выигрыш или потеря производительности из-за чрезмерного или недостаточного усердия квалификационных переменных как const
. Я имею в виду, в частности, переменные, объявленные и используемые исключительно в изолированном блоке кода. Например, что-то вроде:
const qreal padding = CalculatePadding();
const QSizeF page_size = CalculatePagePreviewSize(padding);
const QRectF content_rect = CalculatePagePreviewContentRect(page_size);
const QList<QRectF> pages = renderer.BuildPrintPages(printer_, map_scene_);
const QFont page_number_font = CalculatePageNumberFont();
const QFontMetrics metrics(page_number_font);
Предположим, мне нужны только const
-квалифицированные методы для всех этих (и более). Есть ли какой-то выигрыш в производительности для объявления их всех const
? Или, наоборот, это на самом деле ухудшает производительность?
Мне интересно как производительность во время выполнения ( Полагаю, это не имеет значения, поскольку const
является исключительно проверкой во время компиляции - может кто-то подтвердить? ) и производительность во время компиляции , У меня недостаточно опыта работы с c ++, чтобы почувствовать это, и мне интересно, стоит ли мне ошибаться из-за чрезмерного или недостаточного применения const
, когда все остальные вещи (ремонтопригодность и т. Д.) Равны.