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 必须可转换成的公共引用类型。
仅为阐释目的常量 /*is-ref-wrapper*/<R> 当且仅当 R 是 std::reference_wrapper 的特化时,为 true。
目录 |
[编辑] 成员类型
成员类型 | 定义 |
type
|
std::common_reference_t<typename R::type&, TQual<T>> (1,2) |
[编辑] 注解
特性测试 宏 | 值 | Std | 特性 |
---|---|---|---|
__cpp_lib_common_reference_wrapper |
202302L |
(C++23) | 使 std::common_reference_t 的 std::reference_wrapper 成为引用类型 |
[编辑] 示例
#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() {}
[编辑] 参见
确定一组类型的公共引用类型 (类模板) |