MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
引用包装

引用包装相关的类和辅助函数的实现 更多...

class  reference_wrapper< T >
 引用包装器类模板 更多...
struct  unwrap_reference< T >
 解包引用包装器,获取原始引用类型 更多...
struct  unwrap_reference< reference_wrapper< T > >
 reference_wrapper的特化版本 更多...
struct  unwrap_ref_decay< T >
 先退化类型,再解包引用包装器 更多...

类型定义

template<typename T>
using unwrap_reference_t = typename unwrap_reference<T>::type
 unwrap_reference的便捷别名
template<typename T>
using unwrap_ref_decay_t = typename unwrap_ref_decay<T>::type
 unwrap_ref_decay的便捷别名

函数

template<typename T>
MSTL_NODISCARD constexpr reference_wrapper< T > ref (T &val) noexcept
 创建引用包装器
template<typename T>
void ref (const T &&)=delete
 删除const右值的ref重载
template<typename T>
MSTL_NODISCARD constexpr reference_wrapper< T > ref (reference_wrapper< T > wrapper) noexcept
 重新包装已存在的引用包装器
template<typename T>
MSTL_NODISCARD constexpr reference_wrapper< const T > cref (const T &val) noexcept
 创建const引用包装器
template<typename T>
void cref (const T &&)=delete
 删除const右值的cref重载
template<typename T>
MSTL_NODISCARD constexpr reference_wrapper< const T > cref (reference_wrapper< T > wrapper) noexcept
 重新包装为const引用包装器

详细描述

引用包装相关的类和辅助函数的实现

函数说明

◆ cref() [1/3]

template<typename T>
void cref ( const T && )
delete

删除const右值的cref重载

模板参数
T类型
注解
防止对const右值创建只读引用包装器

◆ cref() [2/3]

template<typename T>
MSTL_NODISCARD constexpr reference_wrapper< const T > cref ( const T & val)
constexprnoexcept

创建const引用包装器

模板参数
T引用类型
参数
val要包装的const左值引用
返回
reference_wrapper<const T>包装器
注解
禁止对右值使用

用于创建只读引用包装

在文件 reference_wrapper.hpp170 行定义.

◆ cref() [3/3]

template<typename T>
MSTL_NODISCARD constexpr reference_wrapper< const T > cref ( reference_wrapper< T > wrapper)
constexprnoexcept

重新包装为const引用包装器

模板参数
T引用类型
参数
wrapper已存在的引用包装器
返回
const版本的引用包装器

将非const引用包装器转换为const版本。

在文件 reference_wrapper.hpp191 行定义.

◆ ref() [1/3]

template<typename T>
void ref ( const T && )
delete

删除const右值的ref重载

模板参数
T类型
注解
防止对const右值创建引用包装器

◆ ref() [2/3]

template<typename T>
MSTL_NODISCARD constexpr reference_wrapper< T > ref ( reference_wrapper< T > wrapper)
constexprnoexcept

重新包装已存在的引用包装器

模板参数
T引用类型
参数
wrapper已存在的引用包装器
返回
相同的引用包装器

在文件 reference_wrapper.hpp156 行定义.

◆ ref() [3/3]

template<typename T>
MSTL_NODISCARD constexpr reference_wrapper< T > ref ( T & val)
constexprnoexcept

创建引用包装器

模板参数
T引用类型
参数
val要包装的左值引用
返回
reference_wrapper<T>包装器
注解
禁止对右值使用

在文件 reference_wrapper.hpp137 行定义.

被这些函数引用 erase_if(), reduce(), reference_wrapper< T >::reference_wrapper() , 以及 transform_reduce().