内联重载运算符c ++

smi*_*dha 5 c++ overloading

如果必须经常使用该运算符,是否可以/应该使用内联的运算符以获得更高的效率(wrt时间或其他)?

我想重载'+'运算符,在我的代码中经常添加大向量.因此问题.

blu*_*lds 8

理想情况下,您需要对代码进行分析,然后决定要内联的内容.当您决定内联常规运算符和超载运算符时,确实没有太大区别.

  • +1.在我们的团队工作中,我们的编码标准不鼓励在头文件中内联方法,除非有可证明的性能提升.我们也不鼓励运算符重载数学运算符,除非类本身可以在逻辑上被认为是数字. (4认同)

Dav*_*hme 6

如果要添加大向量,则相对于实际添加两个向量的时间,函数调用加号的开销会很小.因此,标记运算符+内联不太可能改善整体运行时间.


Emi*_*lia 5

让编译器决定优化。

这个关键字inline具有误导性:事实上,编译器总是可以做它需要的事情,就像旧的 auto(你还记得那些日子吗?)和register.

它的现代含义是“在标头中定义:如果不使用则丢弃,如果出现多次则合并”。