名稱空間
變體
操作

C++ 命名要求: DefaultConstructible

來自 cppreference.com
 
 
C++ 命名要求
基本
DefaultConstructible(可預設構造)
型別屬性
全庫範圍




Container(容器)
容器元素
迭代器 (Iterator)
流 I/O
格式化器
(C++20)
隨機數
併發
(C++11)
Ranges
多維檢視
其他

 

指定該型別的一個例項可以被預設構造。

目錄

[編輯] 要求

型別 T 滿足 DefaultConstructible,如果所有以下語句和表示式都是有效的並具有其指定的效果

 表示式/語句  後置條件
T u; 物件 u預設初始化
T u{}; 物件 u值初始化聚合初始化
T()

T{}

型別 T 的臨時物件被 值初始化聚合初始化

[編輯] 注意

對於非聚合類型別的物件,必須定義一個公共的預設建構函式(無論是使用者定義的還是隱式定義的)才能滿足 DefaultConstructible

非類的非類物件型別的非 const 物件總是 DefaultConstructible

const 非類型別不是 DefaultConstructible

如果 const 聚合型別的任何成員是非類型別的物件,則它們不是 DefaultConstructible

非物件型別(函式型別、引用型別和(可能帶 cv 限定符的)型別 void)以及 const 非物件型別從不 DefaultConstructible

[編輯] 缺陷報告

下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。

缺陷報告 應用於 釋出時的行為 正確的行為
LWG 724 C++98 缺少 DefaultConstructible 的要求 已新增
LWG 2170 C++98 用空初始化器初始化 DefaultConstructible 型別的物件
只能導致值初始化
也可能導致
聚合初始化

[編輯] 參閱

檢查型別是否具有預設建構函式
(類模板) [編輯]
指定型別的物件可以預設構造
(概念) [編輯]