Я понимаю поведение 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
является исключительно проверкой во время компиляции - может кто-нибудь подтвердить ? ) и производительность во время компиляции. У меня недостаточно опыта работы с С ++, чтобы почувствовать это, и мне интересно, должен ли я ошибаться в сторону чрезмерного или недостаточного применения const
, когда все остальное (ремонтопригодность и т. Д.) равно.