Do const
声明有助于编译器 (GCC) 生成更快的代码,还是仅对可读性和正确性有用?
泽德·肖认为const
在 C/C++ 中无用或过度使用:
接下来是对 const 的所有奇怪的迷恋。由于某些奇怪的原因
C++ 喜欢让你在声明的每个部分都加上 const,并且
但我得到了与 C 相同的最终结果:调用了一个函数。 (...)
(From: http://librelist.com/browser//mongrel2/2010/7/15/c-verses-c++/#770d94bcfc6ddf1d8510199996b607dd http://librelist.com/browser//mongrel2/2010/7/15/c-verses-c++/#770d94bcfc6ddf1d8510199996b607dd )
是的。这是一个具体的例子。const
使得可以通过以下方式传递参数const&
而不是按价值(这可能需要昂贵的副本)。重要的是要认识到,路过的替代方案是const&
is not经过-&
因为后者不允许临时者受到约束。例如,这段代码:
auto result = foo{1} + foo{2} + foo{3};
可能会打电话foo operator +(foo const&, foo const&)
但它可能not call foo operator +(foo&, foo&)
.
那样,const
有助于避免复制。
但一般来说,const
是一个工具来确保正确性,而不是帮助优化。
不管怎样,泽德·肖都不知道他在说什么。顺便说一句,他其余的咆哮也同样被误导了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)