例如:
constexpr int g() { return 30; }
constexpr int f()
{
// Can we omit const?
const int x = g();
const int y = 10;
return x + y;
}
有没有必要在constexpr
函数中声明局部变量const
?
constexpr
具有const
局部变量的函数不等于没有局部变量的函数const
吗?
换句话说,constexpr
函数是否强加(暗示)const
其局部变量?
与const
在非constexpr
函数中一样,用于声明变量的参数也适用于constexpr
函数:
const
说明了它永远不会被更改的事实。在某些情况下,这可能有助于使功能更具可读性。const
会影响重载解析,并可能根据is是不同地进行h(x)
解析。h
x
const
当然,正如已经在评论中提到的那样,方向相反:
即使在constexpr
函数中,局部变量也可能会更改。如果随后更改了这些变量const
,使其变为,将不再接受尝试更改它们的尝试。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句