dav*_*mac 9

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

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

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

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

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

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

并紧接着:

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

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