名稱空間
變體
操作

std::experimental::ranges::tagged

來自 cppreference.com
< cpp‎ | experimental‎ | ranges
 
 
實驗性
技術規範
檔案系統庫 (檔案系統 TS)
庫基礎 (庫基礎 TS)
庫基礎 2 (庫基礎 TS v2)
庫基礎 3 (庫基礎 TS v3)
並行性擴充套件 (並行性 TS)
並行性擴充套件 2 (並行性 TS v2)
併發性擴充套件 (併發性 TS)
併發擴充套件 2 (併發 TS v2)
概念 (概念 TS)
範圍 (範圍 TS)
反射 (反射 TS)
數學特殊函式 (特殊函式 TR)
實驗性非 TS
模式匹配
線性代數
std::execution
契約
2D 圖形
 
 
通用工具庫
實用元件
函式物件
超程式設計和型別特徵
帶標籤的對和元組
                          
tagged
標籤指定符
                                      
                          
 
std::experimental::ranges::tagged
 
定義於標頭檔案 <experimental/ranges/utility>
template< class Base, TagSpecifier... Tags >

    requires sizeof...(Tags) <= std::tuple_size<Base>::value

struct tagged;
(ranges TS)

類模板 tagged 擴充套件了元組類型別 Base(它公開地派生自 Base),並提供由標籤指定符 Tags... 指定的一組命名訪問器。這些標籤按順序應用:Tags... 中第 i 個標籤指定符對應於元組的第 i 個元素。

Tags... 中的標籤指定符必須是唯一的。否則,行為是未定義的。

無法透過指向除 Base 之外的任何基類的指標刪除 tagged 的例項。

目錄

[編輯] 成員函式

構造一個 tagged 物件
(public member function) [編輯]
賦值一個 tagged 物件
(public member function) [編輯]
交換兩個 tagged 物件的內容
(public member function) [編輯]

[編輯] 命名元素訪問器

對於 Tags... 中第 N 個標籤指定符,其對應的元素名為 nametagged 提供名為 name 的訪問器,如下所示:

constexpr decltype(auto) name() &       { return std::get<N>(*this); }
constexpr decltype(auto) name() const & { return std::get<N>(*this); }
constexpr decltype(auto) name() &&      { return std::get<N>(std::move(*this)); }

[編輯] 非成員函式

特化 swap 以用於 tagged 物件
(function) [編輯]

[編輯] 元組式訪問

獲取 tagged 的大小
(class template specialization) [編輯]
獲取 tagged 元素的型別
(class template specialization) [編輯]

[編輯] 參見

指定型別是標籤指定符
(概念) [編輯]
帶標籤的 std::pair 的別名模板
(別名模板)[編輯]
用於建立 tagged_pair 的便捷函式
(函式模板) [編輯]
帶標籤的 std::tuple 的別名模板
(別名模板)[編輯]
用於建立 tagged_tuple 的便捷函式
(函式模板) [編輯]
用於 ranges::tagged 的標籤指定符
(類) [編輯]