常量引用相对于非常量引用的性能

问题描述 投票:0回答:1

在C++中使用常量引用和非常量引用时性能有区别吗?如果是,那么哪个更好,为什么?

SystemC手册中有这样一句话:通过非常量引用传递对象是一种快速的解决方案。

c++ performance compiler-optimization
1个回答
1
投票

不,完全没有区别。

const
仅适用于本地,但任何最近的编译器都能够轻松确定引用是否已更改,因此没有区别。

考虑这个场景:

void MyClass::foo(const int& param)
{
    m_myInt1 = param + 1;
    m_myInt2 = param;
}

在这两种情况下,每次访问

param
都必须经过内存。为什么?因为
param
可能会别名
m_myInt1

MyClass bar;
bar.foo(bar.m_myInt1);

const
引用仅意味着无法通过该引用修改
param
。您仍然可以通过其他参考来修改它(在本例中,通过
this->m_myInt1
)。

© www.soinside.com 2019 - 2024. All rights reserved.