Dav*_*eer 7 c++ performance const
我理解 - 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);
Run Code Online (Sandbox Code Playgroud)
假设我const在所有这些方面只需要合格的方法(以及更多.)在声明它们时是否有任何性能提升const?或者,相反,这实际上是否会损害性能?
我很好奇两个运行时性能(我猜这没有区别,因为const它只是一个编译时检查 - 有人可以确认吗?)和编译时性能.我对c ++没有足够的经验来感受这一点,并且我想知道const当所有其他事情(可维护性等)相等时我是否应该在过度或不足的情况下犯错.
tda*_*ers 23
const主要是编译时的东西,然而,声明某些东西const有时允许某些优化.如果有问题的代码不是性能瓶颈,我不会担心它只是const按预期使用:产生更清晰的代码并防止自己做愚蠢的事情.