YSTest: ystdex::lref< _type > 模板类 参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

Public 类型 | Public 成员函数 | 静态 Private 成员函数 | Private 属性 | 相关函数 | 所有成员列表
ystdex::lref< _type > 模板类 参考

左值引用包装。 更多...

`#include <ref.hpp>`

类 ystdex::lref< _type > 继承关系图:
[图例]

## Public 类型

using | type = _type

## Public 成员函数

template<typename _type2 , typename = decltype( fun(std::declval<_type2>())), typename = exclude_self_t<lref, _type2>>
| lref (_type2 &&u)
| lref (const lref &)=default
lref & | operator= (const lref &)=default
| operator _type & () const
_type & | get () const
template<typename... _tParams>
invoke_result_t< _type &, _tParams... > | operator() (_tParams &&... args) const

## 静态 Private 成员函数

static _type * | fun (_type &)
static _type * | fun (_type &&)=delete

## Private 属性

_type * | ptr

## 相关函数

(请注意: 这些不是成员函数.)
template<typename _type >
lref< _type > | ref (_type &t)
| 构造引用包装。 更多...

## 详细描述

### template<typename _type>
class ystdex::lref< _type >

左值引用包装。

自从
  build 554

模板参数

  _type | 被包装的类型。

注解
  满足 TrivialCopyable 要求。

参见
  WG21 N4277 。
  WG21 P0357R1 。
  LWG 2993 。
  LWG 3041 。

类似 std::reference_wrapper 和 `boost::reference_wrapper` 公共接口兼容的 引用包装类实现。 和 std::reference_wrapper 不同而和 `boost::reference_wrapper` 类似， 不提供 weak result type ，不要求模板参数为完整类型。 使用 exclude_self_t 实现，不需要 LWG 3041 的解决方案但等效。

在文件 ref.hpp 第 60 行定义.

## 成员类型定义说明

## ◆ type

template<typename _type >

using ystdex::lref< _type >::type = _type

在文件 ref.hpp 第 63 行定义.

## 构造及析构函数说明

## ◆ lref() [1/2]

template<typename _type >
template<typename _type2 , typename = decltype( fun(std::declval<_type2>())), typename = exclude_self_t<lref, _type2>>

ystdex::lref< _type >::lref | ( | _type2 && | u | ) |

inline

在文件 ref.hpp 第 78 行定义.

## ◆ lref() [2/2]

template<typename _type >

ystdex::lref< _type >::lref | ( | const lref< _type > & |  | ) |

default

自从
  build 556

## 成员函数说明

## ◆ fun() [1/2]

template<typename _type >

static _type* ystdex::lref< _type >::fun | ( | _type && |  | ) |

inlinestaticprivatedelete

## ◆ fun() [2/2]

template<typename _type >

static _type* ystdex::lref< _type >::fun | ( | _type & |  | ) |

inlinestaticprivate

自从
  build 870

## ◆ get()

template<typename _type >

_type& ystdex::lref< _type >::get | ( |  | ) | const

inline

在文件 ref.hpp 第 96 行定义.

被这些函数引用 YSLib::Devices::InputManager::DispatchInput(), ystdex::bad_any_cast::from_type(), YSLib::Drawing::MultiBitmapData::LockPage(), YSLib::Drawing::MultiBitmapData::MultiBitmapData(), ystdex::prototyped_iterator< _type, _fUpdater >::operator*(), ystdex::bad_any_cast::to_type(), YSLib::UI::BorderResizer::Wrap() , 以及 YSLib::Drawing::MultiBitmapData::~MultiBitmapData().

这是这个函数的调用关系图:

## ◆ operator _type &()

template<typename _type >

ystdex::lref< _type >::operator _type & | ( |  | ) | const

inline

在文件 ref.hpp 第 90 行定义.

## ◆ operator()()

template<typename _type >
template<typename... _tParams>

invoke_result_t<_type&, _tParams...> ystdex::lref< _type >::operator() | ( | _tParams &&... | args | ) | const

inline

前置条件
  要求对象是完整类型。

自从
  build 832

在文件 ref.hpp 第 107 行定义.

## ◆ operator=()

template<typename _type >

lref& ystdex::lref< _type >::operator= | ( | const lref< _type > & |  | ) |

default

自从
  build 556

## 友元及相关函数文档

## ◆ ref()

template<typename _type >

lref< _type > ref | ( | _type & | t | ) |

related

构造引用包装。

在文件 ref.hpp 第 120 行定义.

## 类成员变量说明

## ◆ ptr

template<typename _type >

_type* ystdex::lref< _type >::ptr

private

在文件 ref.hpp 第 66 行定义.

被这些函数引用 ystdex::lref<::FreeImageIO >::get(), ystdex::lref<::FreeImageIO >::operator()() , 以及 ystdex::lref<::FreeImageIO >::operator::FreeImageIO &().

该类的文档由以下文件生成:

- ref.hpp