繁体   English   中英

在C ++标准中它表示必须初始化const内置类型变量的定义?

[英]Where in the C++ Standard does it say that the definition of a const built-in type variable must be initialized?

我一直在N4713寻找这个超过两个小时无济于事。

我有一个C ++ 14草案,在7.1.6.1 [dcl.type.cv]中说:

如8.5中所述,const限定类型的对象或子对象的定义必须指定初始化程序或受默认初始化的约束

8.5 [dcl.init]说(第7条):

默认初始化T类型的对象意味着:

[对于非类,非数组类型]:

......没有执行初始化

并紧接着:

如果程序要求对const限定类型T的对象进行默认初始化,则T应为具有用户提供的默认构造函数的类类型。

因此, const内置const必须具有初始化程序,否则它将被默认初始化并且不允许。

它在N4713 [dcl.init] 11.6 / 7中以相当间接的方式措辞:

如果程序要求对const限定类型T的对象进行默认初始化,则T应为const-default-constructible类类型或其数组。

不提供初始化会导致对象默认初始化。 因此,如果它是const限定的并且是内置类型的,它违反了上面的“应该”规则。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM