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

YSTest PreAlpha_b700_20160611 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 类列表
- 类索引
- 类继承关系
- 类成员

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

## Private 类型

using | base = details::thunk_caller< _tRet, decay_t< _fCallable >>
Private 类型 继承自 ystdex::details::thunk_caller< _tRet, decay_t< _fCallable > >
using | caller_type = decay_t< _fCallable >
using | return_type = _tRet
using | value_type = decay_t< unwrap_reference_t< _tRet >>

## 相关函数

(请注意: 这些不是成员函数.)
template<typename _fCallable >
thunk< result_of_t< _fCallable()>, decay_t< _fCallable > > | make_thunk (_fCallable &&f)
| 构造延迟调用对象。 更多...
template<typename _type >
enable_if_t< sizeof(result_of_t< _type()>)!=0, details::thunk_call_proxy< _type > > | make_thunk (const _type &obj)

## 额外继承的成员函数

Private 成员函数 继承自 ystdex::details::thunk_caller< _tRet, decay_t< _fCallable > >
| thunk_caller (caller_type f)
| thunk_caller (const value_type &arg)
| thunk_caller (_type arg)
| thunk_caller (const thunk_caller &)=default
| thunk_caller (thunk_caller &&)=default
thunk_caller & | operator= (const thunk_caller &)=default
thunk_caller & | operator= (thunk_caller &&)=default
Private 属性 继承自 ystdex::details::thunk_caller< _tRet, decay_t< _fCallable > >
caller_type | caller

## 详细描述

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

包装惰性求值的过程。

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

自从
  build 526

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

## 成员类型定义说明

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

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

private

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

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

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

自从
  build 529
  build 541

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

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

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

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

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

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

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

## 构造及析构函数说明

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

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

inline

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

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

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

inline

自从
  build 554

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

template<typename _tRet , typename _fCallable = std::function<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 第 133 行定义.

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

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

default

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

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

default

## 成员函数说明

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

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

inline

自从
  build 526

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

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

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

inline

自从
  build 526

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

参考 ystdex::invoke().

函数调用图:
template<typename _tRet , typename _fCallable = std::function<unwrap_reference_t<_tRet>()>>

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

default

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

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

default

## 友元及相关函数文档

template<typename _fCallable >

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

related

构造延迟调用对象。

自从
  build 526

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

参考 YSLib::IO::f , 以及 yforward.

template<typename _type >

enable_if_t< sizeof(result_of_t< _type()>)!=0, details::thunk_call_proxy< _type > > make_thunk | ( | const _type & | obj | ) |

related

待办事项:
  使用 ISO C++14 返回值推导，直接以 lambda 表达式实现。

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

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

- thunk.hpp