gpt4 book ai didi

c++ - 对全局常量使用 auto

转载 作者:行者123 更新时间:2023-11-30 01:16:18 25 4
gpt4 key购买 nike

假设我有这样的东西:

namespace {
const unsigned MY_UINT = 100u;
const float MY_FLOAT = 0.f;
const char* MY_STRING = "Hello World";
}

通过使用 auto 是否可以获得预期的行为?我认为这是一种改进,但在实践中我不确定这一点。

namespace {
auto MY_UINT = 100u;
auto MY_FLOAT = 0.f;
auto MY_STRING = "Hello World";
}

这两个代码示例在语义上是否相同?这些会自动成为 const 吗?如果不是,我应该指定 auto const 吗?

最佳答案

auto 的推导规则等同于按值模板参数推导。按值创建对象需要从初始化程序中剥离引用和​​顶级 cv 限定符。你的两个例子是不等价的。特别是,原语 100uunsigned int 类型,因此它被推断为。同样,0.ffloat 类型。

只有当变量本身 不会被修改时,添加const 才有意义。如果您想在程序中创建常量,使用 constexpr 可能会更好。

关于c++ - 对全局常量使用 auto,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26897671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com