【发布时间】:2015-11-01 15:26:21
【问题描述】:
例如:
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 声明局部变量?
具有const 局部变量的constexpr 函数是否与没有const 的函数等效?
换句话说,函数上的constexpr 是否强加(暗示)const 上的局部变量?
【问题讨论】:
-
我不同意你的假设,即省略
const会使函数看起来“更干净”。另外,不,我不这么认为。但我不是constexprt。 -
你甚至可以change them! (而且它合乎逻辑,它不会使函数不纯)
-
@LeoHeinsaar 我认为您的意思是更少的非空白字符,因为否则它可以通过该定义以一种几乎普遍被解释为不可读的方式简单地变得“更干净”。
-
@LeoHeinsaar 所以你认为混淆的 C++ 更干净,因为它的字符更少?
-
这里是最干净的:
constexpr int f(){int x=g(),y=10;return x+y;}(说真的)
标签: c++ c++11 constants c++14 constexpr