C++ 命名要求: 一元型別特性 (UnaryTypeTrait) (自 C++11 起)
來自 cppreference.com
一個 一元型別特性 (UnaryTypeTrait) 是一個類模板,它透過 std::integral_constant (通常是 std::bool_constant) 的特化來描述其模板型別引數的屬性。
[編輯] 要求
- 可預設構造 (DefaultConstructible) 和 可複製構造 (CopyConstructible)。
- 接受一個模板型別引數(額外的模板引數是可選和允許的)。
- 公開且無歧義地派生自 std::integral_constant 的特化,稱為其基本特性 (base characteristic)。
- 基本特性的成員名稱未被隱藏,並且可無歧義地訪問。
[編輯] 標準庫
以下所有型別特性 (type traits) 都滿足 一元型別特性 (UnaryTypeTrait)
- 主要型別類別 (Primary type categories)
- 複合型別類別 (Composite type categories)
- 型別屬性
- 支援的操作
- 屬性查詢 (Property queries)
以下標準庫類模板也滿足 一元型別特性 (UnaryTypeTrait)。
(C++11) |
指定型別和指定值的編譯時常量 (類模板) |
(C++17) |
邏輯 NOT 元函式 (類模板) |
(C++11) |
獲取 tuple 的大小一個 |
(C++11) |
獲得 array 的大小(類模板特化) |
(C++11) |
獲取 pair 的大小(類模板特化) |
(C++17) |
在編譯時獲取 `variant` 替代列表的大小 (類模板) (變數模板) |
(C++11) |
指示一個物件是 `std::bind` 表示式或可用作 `std::bind` 表示式 (類模板) |
(C++11) |
指示一個物件是標準佔位符或可用作標準佔位符 (類模板) |
(C++17) |
測試一個類是否表示執行策略 (類模板) |