std::experimental::ranges::reference_t, std::experimental::ranges::rvalue_reference_t, std::experimental::ranges::iter_common_reference_t

出自cppreference.com
 
 
實驗性
技術規範
文件系統庫 (文件系統 TS)
庫基礎 (庫基礎 TS)
庫基礎 2 (庫基礎 TS v2)
庫基礎 3 (庫基礎 TS v3)
並行擴展 (並行 TS)
並行擴展 2 (並行 TS v2)
並發擴展 (並發 TS)
並發擴展 2 (並發 TS v2)
概念 (概念 TS)
範圍 (範圍 TS)
反射 (反射 TS)
數學特殊函數 (特殊函數 TR)
實驗性非 TS 功能特性
模式匹配
線性代數
std::execution
契約
2D 圖形
 
 
迭代器庫
迭代器概念
間接可調用概念
                                                  
                                                  
                                                  
常用算法要求
                                                  
概念工具
迭代器工具及運算
迭代器特徵
迭代器適配器
流迭代器
 
template< class T >
concept bool /*dereferenceable*/ = requires(T& t) { {*t} -> auto&&; };
(僅用於闡述*)
template< /*dereferenceable*/ T > 
using reference_t = decltype(*declval<T&>());
(1) (範圍 TS)
template< /*dereferenceable*/ T >
    requires requires(T& t) { { ranges::iter_move(t) } -> auto&&; }
using rvalue_reference_t = decltype(ranges::iter_move(declval<T&>()));
(2) (範圍 TS)
template< Readable T > 
using iter_common_reference_t = ranges::common_reference_t<ranges::reference_t<T>,
                                                           ranges::value_type_t<T>&>;
(3) (範圍 TS)
1) 獲得可解引用類型 T引用類型
2) 獲得可解引用類型 T右值引用類型,即 ranges::iter_move 的返回類型。
3) 計算 Readable共用引用類型。這是其引用類型及到其值類型的左值引用的共用引用類型。

註解

-> auto&& 制約檢查表達式的類型是否非 void