“自动”可以吗?关键字可以用作 C++11 中的存储类说明符吗?

发布于 2024-11-08 23:10:52 字数 131 浏览 1 评论 0原文

auto 关键字可以用作 C++11 中的存储类说明符吗?

以下代码在 C++11 中合法吗?

int main() {
   auto int x;
}

Can the auto keyword be used as a storage class specifier in C++11?

Is the following code legal in C++11?

int main() {
   auto int x;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一瞬间的火花 2024-11-15 23:10:52

不,C++11 中的代码格式不正确。 C++11 中的 auto 将用于从变量的初始值设定项推断变量的类型,并且不能用作存储类说明符。

正确使用

int main()
{
   auto x = 12; // x is an int
   auto y = 12.3; // y is a double
}

No the code is ill-formed in C++11. auto in C++11 would be used to deduce the type of a variable from its initializer and it can't be used as a storage class specifier.

Correct Usage

int main()
{
   auto x = 12; // x is an int
   auto y = 12.3; // y is a double
}
瞄了个咪的 2024-11-15 23:10:52
auto int x;

是循环的 - 您实际上将类型声明为 int
鉴于您拥有此信息 - 没有理由不简单地使用:

int x;

如果您想声明 x 范围内另一个变量的类型,您可以使用 decltype

using sometype = float;
sometype y;
decltype(y) x;
auto int x;

is circular - you are literally declaring the type as an int.
given that you had this information - there is no reason to not simply use:

int x;

if you wanted to declare x the type of another variable in scope you can use decltype

using sometype = float;
sometype y;
decltype(y) x;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文