std::basic_common_reference<std::reference_wrapper>
定義於標頭檔案 <functional> |
||
template< class R, class T, template<class> RQual, template<class> TQual > |
(1) | (C++23 起) |
template< class T, class R, template<class> TQual, template<class> RQual > |
(2) | (C++23 起) |
輔助概念 |
||
template< class R, class T, class RQ, class TQ > concept /*ref-wrap-common-reference-exists-with*/ = |
(3) | (僅作說明*) |
reference_wrapper
(表示為 R)與型別 T 的共同引用型別,分別應用 cv 和引用限定符(分別表示為 RQ 和 TQ),等價於 R 的底層型別應用左值引用和 TQ 的共同引用型別。
僅當 R 是唯一 reference_wrapper
時才定義共同引用型別,並且 R 的底層型別應用左值引用和 TQ 具有共同引用型別,RQ 必須可轉換為該共同引用型別。
僅當 R 是 std::reference_wrapper 的特化時,才為 exposition-only 常量 /*is-ref-wrapper*/<R> 的值為 true。
目錄 |
[編輯] 成員型別
成員型別 | 定義 |
型別
|
std::common_reference_t<typename R::type&, TQual<T>> (1,2) |
[編輯] 註解
特性測試宏 | 值 | 標準 | 特性 |
---|---|---|---|
__cpp_lib_common_reference_wrapper |
202302L |
(C++23) | 將 std::reference_wrapper 的 std::common_reference_t 設為引用型別 |
[編輯] 示例
#include <concepts> #include <functional> static_assert(std::same_as<std::common_reference_t<int&, std::reference_wrapper<int>>, int&>); static_assert(std::same_as<std::common_reference_t<std::reference_wrapper<int>&, int&>, int&>); static_assert(std::same_as<std::common_reference_t<int&, const std::reference_wrapper<int>&>, int&>); int main() {}
[編輯] 參閱
確定一組型別的公共引用型別 (類模板) |