命名空間
變體
動作

具名要求

出自 cppreference.com
< cpp
 
 
C++ 具名要求
基本
類型屬性
全函式庫通用




容器 (Container)
容器元素
迭代器 (Iterator)
串流 I/O
格式化器
隨機數
並行 (Concurrency)
範圍 (Ranges)
多維視圖 (Multidimensional View)
其他

 

本頁面所列的具名要求 (named requirements),是指 C++ 標準規範性文本中用來定義標準函式庫期望的具名要求。

確保函式庫模板在實例化時,其模板參數滿足這些要求,是程式設計師的責任。若未能滿足,可能會導致非常複雜的編譯器診斷訊息。

其中一些要求在 C++20 中透過 概念 (concepts) 語言特性進行了形式化。

目錄

基本

指定該型別的物件可以進行預設建構
(具名要求)
指定該型別的物件可以由右值建構
(具名要求)
指定該型別的物件可以由左值建構
(具名要求)
指定該型別的物件可以由右值賦值
(具名要求)
指定該型別的物件可以由左值賦值
(具名要求)
指定該型別的物件可以被銷毀
(具名要求)

類型屬性

注意:標準並未定義此子類別中指定名稱的具名要求。
這些是由核心語言定義的型別類別。在此處包含它們僅是為了保持一致性。
非陣列型別或類別型別的物件型別
(具名要求)
(C++20 中已棄用)
POD (Plain Old Data) 型別,與 C 語言的 struct 相容
(具名要求)
這類型別的物件在複製其底層位元組後可以維持其值
(具名要求)
(C++11)(在 C++26 中棄用)
這類型別的物件可以被平凡建構與複製
(具名要求)
這些型別對於與其他程式語言編寫的程式碼進行通訊非常有用
(具名要求)
這類型別的物件可以被隱式創建,且其生命週期可以隱式開始
(具名要求)

全函式庫通用

布林運算 (operator&&, operator||, 及 operator!) 具有通常的語意
(具名要求)
operator== 是一種等價關係
(具名要求)
operator< 是一種嚴格弱序關係
(具名要求)
可以透過非限定的非成員函式呼叫 swap() 進行交換
(具名要求)
一種 LegacyIterator,解參考後得到一種 Swappable 型別
(具名要求)
支援空值的指標類型別
(具名要求)
一種 FunctionObject,對於不同的輸入值,產生相同輸出的機率很低
(具名要求)
包含分配資訊的類別型別
(具名要求)
可以使用函式呼叫語法來呼叫的物件
(具名要求)
定義了 invoke 操作的型別
(具名要求)
一種 FunctionObject,對於一個參數,回傳一個可轉換為 bool 的值且不修改參數
(具名要求)
一種 FunctionObject,對於兩個參數,回傳一個可轉換為 bool 的值且不修改參數
(具名要求)
一種 BinaryPredicate,確立了一種排序關係
(具名要求)

容器 (Container)

允許使用迭代器存取元素的資料結構
(具名要求)
使用雙向迭代器的容器
(具名要求)
使用配置器 (allocator) 的容器
(具名要求)
元素線性儲存的容器
(具名要求)
元素儲存在相鄰記憶體位址的容器
(具名要求)
透過將元素與鍵關聯來儲存元素的容器
(具名要求)
透過將元素關聯到鍵並儲存在桶 (bucket) 中的容器
(具名要求)
容器元素
元素可以在未初始化的儲存區中被預設建構
(具名要求)
元素可以在未初始化的儲存區中被複製建構
(具名要求)
元素可以在未初始化的儲存區中被移動建構
(具名要求)
元素可以在未初始化的儲存區中被建構
(具名要求)
元素可以使用配置器銷毀
(具名要求)

迭代器 (Iterator)

存取某種資料結構內資料的通用概念
(具名要求)
可用於讀取資料的迭代器
(具名要求)
可用於寫入資料的迭代器
(具名要求)
可用於多次讀取資料的迭代器
(具名要求)
可以遞增與遞減的迭代器
(具名要求)
可以在常數時間內推進的迭代器
(具名要求)
指向連續分配元素的迭代器
(具名要求)
可在常數運算式求值期間使用的迭代器
(具名要求)

串流 I/O 函式

一種不跳過前導空白並計算已處理字元數的串流輸入函式
(具名要求)
一種會跳過前導空白的串流輸入函式
(具名要求)
一種基本的串流輸出函式
(具名要求)
一種在發生錯誤時設置 failbit 並回傳串流參考的串流輸出函式
(具名要求)

格式化器

為給定的格式化參數型別和字元型別抽象出格式化操作
(具名要求)
定義由 格式化函式庫 使用的函式
(具名要求)

隨機數生成

消耗整數序列並產生 32 位元無符號值序列
(具名要求)
回傳均勻分佈的隨機無符號整數
(具名要求)
一種由種子定義的決定性 UniformRandomBitGenerator
(具名要求)
一種轉換另一個 RandomNumberEngine 輸出的 RandomNumberEngine
(具名要求)
回傳根據給定數學機率密度函式分佈的隨機數
(具名要求)

並行 (Concurrency)

為執行代理(即執行緒)提供排他性擁有權語意
(具名要求)
一種支援嘗試獲取鎖的 BasicLockable
(具名要求)
一種支援定時鎖獲取的 Lockable
(具名要求)
為執行代理(即執行緒)提供共享擁有權語意
(具名要求)
一種支援定時鎖獲取的 SharedLockable
(具名要求)
一種防止資料競爭並保證順序一致性同步的 Lockable
(具名要求)
一種防止資料競爭並保證順序一致性同步的 TimedLockable
(具名要求)
一種支援共享擁有權語意的 Mutex
(具名要求)
一種支援共享擁有權語意的 TimedMutex
(具名要求)

範圍 (Ranges)

一種 FunctionObject,能從 viewable_range 和額外參數創建 範圍適配器 (range adaptor)
(具名要求)
一種支援管線運算子 (pipe operator) 的 FunctionObject
(具名要求)

多維視圖自訂

控制 mdspan 中多維索引的映射
(具名要求)
一種持有 LayoutMapping 要求的策略
(具名要求)
一種控制 mdspan 中資料控制代碼存取的策略
(具名要求)

其他

描述型別的屬性
(具名要求)
描述兩個型別之間的關係
(具名要求)
修改型別的屬性
(具名要求)
聚合了時長 (duration)、時間點 (time point) 以及獲取當前時間點的函式
(具名要求)
一種不會拋出異常的 Clock
(具名要求)
為字元型別定義型別和函式
(具名要求)
位元集、整數或枚舉
(具名要求)
一種其初始化效果等同於賦值的型別
(具名要求)
定義由 正規表達式函式庫 使用的型別和函式
(具名要求)
具有 constexpr 建構函式的型別
(具名要求)
English Deutsch 日本語 中文(简体) 中文(繁體)