【问题标题】:Uniform initialization syntax for basic types?基本类型的统一初始化语法?
【发布时间】:2014-08-15 15:23:04
【问题描述】:
const int number{42};

这是有效的语法吗?我只能找到花括号初始值设定项用于对象或非平凡类型的示例。

【问题讨论】:

  • 当您可以在语言标准中查找示例时,为什么还要查找示例?是的,这是允许的。这就是“制服”中的“制服”所代表的意思。
  • “统一初始化语法”就是uniform。所以是的,这是有效的。
  • 好吧,我已经用过它了,它按预期工作,但后来有人告诉我这是无效的语法。所以我去找例子。我们到了。
  • 花括号用于初始化数组,因此您的“数字”变量只是一个包含 1 个元素的数组。常量。
  • @codekiddy 花括号用于初始化任何东西(因此,“统一初始化”)。 number 这里不是数组;这是一个int

标签: c++ c++11 uniform-initialization


【解决方案1】:

您的问题的简单答案是YES,这是允许的,并且是有效的语法。

您可以通过 stroustrup 检查Uniform initialization syntax and semantics

还要根据 C++98 8.5/13 添加:

如果T是标量类型,则声明形式

T x = { a };

等价于

T x = a;

【讨论】:

  • 好的,像 OP 的问题中的 T x { a }; 怎么样?
  • @FredOverflow:- 是的,这也是允许的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-15
  • 2014-07-03
相关资源
最近更新 更多