YSTest: ystdex::thunk< _tRet, _fCallable > 模板类 参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

Public 类型 | Public 成员函数 | Public 属性 | Private 类型 | 相关函数 | 所有成员列表
ystdex::thunk< _tRet, _fCallable > 模板类 参考

包装惰性求值的过程。 更多...

`#include <thunk.hpp>`

类 ystdex::thunk< _tRet, _fCallable > 继承关系图:
[图例]
ystdex::thunk< _tRet, _fCallable > 的协作图:
[图例]

## Public 类型

using | caller_type = _fCallable
using | return_type = _tRet
using | value_type = decay_t< unwrap_reference_t< _tRet > >

## Public 成员函数

| thunk (const value_type &arg)
template<typename _type >
| thunk (lref< _type > arg)
template<typename _fCaller , typename = exclude_self_t<thunk, _fCaller>, typename = enable_if_convertible_t<_fCaller&&, caller_type>>
| thunk (_fCaller &&f)
| thunk (const thunk &)=default
| thunk (thunk &&)=default
thunk & | operator= (const thunk &)=default
thunk & | operator= (thunk &&)=default
return_type | operator() () const
| operator return_type () const

## Public 属性

caller_type | caller

## Private 类型

using | base = details::thunk_caller< _tRet, decay_t< _fCallable > >

## 相关函数

(请注意: 这些不是成员函数.)
template<typename _fCallable >
thunk< invoke_result_t< _fCallable >, decay_t< _fCallable > > | make_thunk (_fCallable &&f)
| 构造延迟调用对象。 更多...

## 详细描述

### template<typename _tRet, typename _fCallable = function<remove_reference_t<unwrap_reference_t<_tRet>>()>>
class ystdex::thunk< _tRet, _fCallable >

包装惰性求值的过程。

参见
  http://c2.com/cgi/wiki?ProcedureWithNoArguments 。

自从
  build 732

在文件 thunk.hpp 第 109 行定义.

## 成员类型定义说明

## ◆ base

template<typename _tRet , typename _fCallable = function<remove_reference_t<unwrap_reference_t<_tRet>>()>>

using ystdex::thunk< _tRet, _fCallable >::base = details::thunk_caller<_tRet, decay_t<_fCallable> >

private

在文件 thunk.hpp 第 112 行定义.

## ◆ caller_type

template<typename _tRet , typename _fCallable = function<remove_reference_t<unwrap_reference_t<_tRet>>()>>

using ystdex::details::thunk_caller< _tRet, _fCallable >::caller_type = _fCallable

自从
  build 529
  build 541

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

## ◆ return_type

template<typename _tRet , typename _fCallable = function<remove_reference_t<unwrap_reference_t<_tRet>>()>>

using ystdex::details::thunk_caller< _tRet, _fCallable >::return_type = _tRet

在文件 thunk.hpp 第 64 行定义.

## ◆ value_type

template<typename _tRet , typename _fCallable = function<remove_reference_t<unwrap_reference_t<_tRet>>()>>

using ystdex::details::thunk_caller< _tRet, _fCallable >::value_type = decay_t<unwrap_reference_t<_tRet> >

在文件 thunk.hpp 第 65 行定义.

## 构造及析构函数说明

## ◆ thunk() [1/5]

template<typename _tRet , typename _fCallable = function<remove_reference_t<unwrap_reference_t<_tRet>>()>>

ystdex::thunk< _tRet, _fCallable >::thunk | ( | const value_type & | arg | ) |

inline

在文件 thunk.hpp 第 122 行定义.

## ◆ thunk() [2/5]

template<typename _tRet , typename _fCallable = function<remove_reference_t<unwrap_reference_t<_tRet>>()>>
template<typename _type >

ystdex::thunk< _tRet, _fCallable >::thunk | ( | lref< _type > | arg | ) |

inline

自从
  build 554

在文件 thunk.hpp 第 127 行定义.

## ◆ thunk() [3/5]

template<typename _tRet , typename _fCallable = function<remove_reference_t<unwrap_reference_t<_tRet>>()>>
template<typename _fCaller , typename = exclude_self_t<thunk, _fCaller>, typename = enable_if_convertible_t<_fCaller&&, caller_type>>

ystdex::thunk< _tRet, _fCallable >::thunk | ( | _fCaller && | f | ) |

inline

自从
  build 527

在文件 thunk.hpp 第 134 行定义.

## ◆ thunk() [4/5]

template<typename _tRet , typename _fCallable = function<remove_reference_t<unwrap_reference_t<_tRet>>()>>

ystdex::thunk< _tRet, _fCallable >::thunk | ( | const thunk< _tRet, _fCallable > & |  | ) |

default

## ◆ thunk() [5/5]

template<typename _tRet , typename _fCallable = function<remove_reference_t<unwrap_reference_t<_tRet>>()>>

ystdex::thunk< _tRet, _fCallable >::thunk | ( | thunk< _tRet, _fCallable > && |  | ) |

default

## 成员函数说明

## ◆ operator return_type()

template<typename _tRet , typename _fCallable = function<remove_reference_t<unwrap_reference_t<_tRet>>()>>

ystdex::thunk< _tRet, _fCallable >::operator return_type | ( |  | ) | const

inline

自从
  build 526

在文件 thunk.hpp 第 153 行定义.

## ◆ operator()()

template<typename _tRet , typename _fCallable = function<remove_reference_t<unwrap_reference_t<_tRet>>()>>

return_type ystdex::thunk< _tRet, _fCallable >::operator() | ( |  | ) | const

inline

自从
  build 526

在文件 thunk.hpp 第 147 行定义.

引用了 ystdex::invoke().

函数调用图:

## ◆ operator=() [1/2]

template<typename _tRet , typename _fCallable = function<remove_reference_t<unwrap_reference_t<_tRet>>()>>

thunk& ystdex::thunk< _tRet, _fCallable >::operator= | ( | const thunk< _tRet, _fCallable > & |  | ) |

default

## ◆ operator=() [2/2]

template<typename _tRet , typename _fCallable = function<remove_reference_t<unwrap_reference_t<_tRet>>()>>

thunk& ystdex::thunk< _tRet, _fCallable >::operator= | ( | thunk< _tRet, _fCallable > && |  | ) |

default

## 友元及相关函数文档

## ◆ make_thunk()

template<typename _fCallable >

thunk< invoke_result_t< _fCallable >, decay_t< _fCallable > > make_thunk | ( | _fCallable && | f | ) |

related

构造延迟调用对象。

自从
  build 832

在文件 thunk.hpp 第 167 行定义.

引用了 CHRLib::f() , 以及 yforward.

函数调用图:

## 类成员变量说明

## ◆ caller

template<typename _tRet , typename _fCallable = function<remove_reference_t<unwrap_reference_t<_tRet>>()>>

caller_type ystdex::details::thunk_caller< _tRet, _fCallable >::caller

自从
  build 541

在文件 thunk.hpp 第 68 行定义.

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

- thunk.hpp