返回内置类型的const值

Fih*_*hop 3 c++ const

返回内置类型的const值是一个很好的习惯吗?

原因是:

const int F()
{
}

int y;
F(x) = y;
Run Code Online (Sandbox Code Playgroud)

如果返回值为const,则上述代码将无法编译.但如果不是,F(x) = y;则是一个非常隐蔽的错误.

由于没有意义为函数赋值,我认为总是为内置类型返回一个const值是一个很好的习惯吗?如果我总是返回内置类型的const值,有什么问题吗?

Joh*_*itb 5

const 意味着在对象的生命周期中,对象的值不会改变.

标准本身指出,因此,const对非类或非数组prvalues的prvalues没有意义.这样的表达式从不引用对象(至少如果表达式源自用户代码.语言本身可能在引用绑定期间创建prvalues,它神奇地引用临时对象.但是,恕我直言,这些应该是xvalues).因此,既然没有对象,就没有生命.因此,没有什么可以举行"const".