Vin*_*ent 4 c++ optimization pass-by-reference pass-by-value c++11
我一直听说确保最佳表现的良好做法是:
int,double...)现在,在编译器下使用C++ 11和完全优化,当通过const引用传递基本类型时是否有开销?
进而,当T是int将以下功能:
template <typename T> inline void f(const T& x);
Run Code Online (Sandbox Code Playgroud)
慢于:
template <typename T> inline void f(const T x);
Run Code Online (Sandbox Code Playgroud)
如果编译器真正内联代码(这对于简单模板很常见),则没有区别.当无法内联函数时,问题变得明显,并且调用了外联定义.
在这种情况下,传递引用可能涉及访问变量时的额外取消引用(至少第一次,可能多次)同时,如果参数是按值,编译器可以执行更积极的优化,因为它知道在当前函数之外无法访问/修改变量.
| 归档时间: |
|
| 查看次数: |
622 次 |
| 最近记录: |