【问题标题】:C++ why compile time variable is immutable? [duplicate]C ++为什么编译时变量是不可变的? [复制]
【发布时间】:2021-04-14 08:22:06
【问题描述】:

C++为什么编译时变量是不可变的??

我不知道为什么编译时变量(constexpr)是不可变的?? 我认为 const 变量很有价值。 因为它会阻止开发人员错误地更改值

但为什么 constexpr 强制 const 和编译时评估。 我认为应该有非常量和编译时间评估变量。 但是没有

我认为编译时间变量可以更改。 访问变量内存和修改看起来不是不可能的。

但为什么我不能更改编译时评估变量??

编译时变量没有存储在内存中??

【问题讨论】:

  • 也许澄清一下,你想写什么代码但不能写?
  • 值得注意的是,虽然constinit存在于C++20中,但它只能应用于静态和线程局部对象。它的主要目的是防止静态初始化命令的失败,而不是提供一个“编译时常量但可变”的变量。后一个概念没那么有用,但如果你真的需要它,可以通过制作constexpr 变量的非const 副本来模拟它。

标签: c++


【解决方案1】:

我认为应该有非 const 和编译时评估变量。

看看C++20's constinit

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多