YSTest: functor.hpp 文件参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

类 | 命名空间 | 宏定义 | 类型定义 | 函数
functor.hpp 文件参考
YBaseLib » YStandardExtend

通用仿函数。 更多...

`#include "ref.hpp"`
`#include "type_traits.hpp"`
`#include <string>`
functor.hpp 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

## 类

struct | ystdex::has_mem_is_transparent< _type, _tDummy >
| 判断 _type 是否包含 is_transparent 成员类型。 更多...
struct | ystdex::id< _type >
| 恒等仿函数。 更多...
struct | ystdex::id< void >
struct | ystdex::addressof_op< _type >
| ystdex::addressof 仿函数。 更多...
struct | ystdex::addressof_op< void >
struct | ystdex::mem_get< _type >
| 成员 get 操作。 更多...
struct | ystdex::mem_get< void >
struct | ystdex::is_equal
| 相等关系仿函数。 更多...
struct | ystdex::cpp2014::plus< _type >
| 加法仿函数。 更多...
struct | ystdex::cpp2014::plus< void >
struct | ystdex::cpp2014::minus< _type >
| 减法仿函数。 更多...
struct | ystdex::cpp2014::minus< void >
struct | ystdex::cpp2014::multiplies< _type >
| 乘法仿函数。 更多...
struct | ystdex::cpp2014::multiplies< void >
struct | ystdex::cpp2014::divides< _type >
| 除法仿函数。 更多...
struct | ystdex::cpp2014::divides< void >
struct | ystdex::cpp2014::modulus< _type >
| 模运算仿函数。 更多...
struct | ystdex::cpp2014::modulus< void >
struct | ystdex::cpp2014::negate< _type >
| 取反仿函数。 更多...
struct | ystdex::cpp2014::negate< void >
struct | ystdex::cpp2014::equal_to< _type >
| 等于关系仿函数。 更多...
struct | ystdex::cpp2014::equal_to< void >
struct | ystdex::cpp2014::not_equal_to< _type >
| 不等于关系仿函数。 更多...
struct | ystdex::cpp2014::not_equal_to< void >
struct | ystdex::cpp2014::greater< _type >
| 大于关系仿函数。 更多...
struct | ystdex::cpp2014::greater< void >
struct | ystdex::cpp2014::greater< _type * >
struct | ystdex::cpp2014::less< _type >
| 小于关系仿函数。 更多...
struct | ystdex::cpp2014::less< void >
struct | ystdex::cpp2014::less< _type * >
struct | ystdex::cpp2014::greater_equal< _type >
| 大于等于关系仿函数。 更多...
struct | ystdex::cpp2014::greater_equal< void >
struct | ystdex::cpp2014::greater_equal< _type * >
struct | ystdex::cpp2014::less_equal< _type >
| 小于等于关系仿函数。 更多...
struct | ystdex::cpp2014::less_equal< void >
struct | ystdex::cpp2014::less_equal< _type * >
struct | ystdex::cpp2014::logical_and< _type >
| 逻辑与仿函数。 更多...
struct | ystdex::cpp2014::logical_and< void >
struct | ystdex::cpp2014::logical_or< _type >
| 逻辑或仿函数。 更多...
struct | ystdex::cpp2014::logical_or< void >
struct | ystdex::cpp2014::logical_not< _type >
| 逻辑非仿函数。 更多...
struct | ystdex::cpp2014::logical_not< void >
struct | ystdex::cpp2014::bit_and< _type >
| 位与仿函数。 更多...
struct | ystdex::cpp2014::bit_and< void >
struct | ystdex::cpp2014::bit_or< _type >
| 位或仿函数。 更多...
struct | ystdex::cpp2014::bit_or< void >
struct | ystdex::cpp2014::bit_xor< _type >
| 位异或仿函数。 更多...
struct | ystdex::cpp2014::bit_xor< void >
struct | ystdex::cpp2014::bit_not< _type >
| 位取反仿函数。 更多...
struct | ystdex::cpp2014::bit_not< void >
struct | ystdex::addrof< _type >
| 一元 & 操作。 更多...
struct | ystdex::addrof< void >
struct | ystdex::indirect< _type >
| 一元 * 操作。 更多...
struct | ystdex::indirect< void >
struct | ystdex::ref_eq< _type >
| 引用等价关系仿函数。 更多...
struct | ystdex::ref_eq< void >
| ! 更多...
struct | ystdex::first_of< _type >
struct | ystdex::first_of< void >
struct | ystdex::second_of< _type >
struct | ystdex::second_of< void >
struct | ystdex::xcrease_t< bool, _tScalar >
| 选择自增/自减运算仿函数。 更多...
struct | ystdex::xcrease_t< false, _tScalar >
struct | ystdex::delta_assignment< bool, _tScalar1, _tScalar2 >
| 选择加法/减法复合赋值运算仿函数。 更多...
struct | ystdex::delta_assignment< false, _tScalar1, _tScalar2 >

## 命名空间

| ystdex
| `<memory>` 特性测试宏。
| ystdex::details
| ystdex::cpp2014
| 使用 new 和指定参数构造指定类型的 std::unique_ptr 对象。

## 宏定义

#define | YB_Impl_Functor_pushf
#define | YB_Impl_Functor_popf
#define | YB_Impl_Functor_Ops_Primary(_q, _n, _tRet, _using_stmt, _expr, ...)
#define | YB_Impl_Functor_Ops_Spec(_q, _n, _tparams, _params, _expr)
#define | YB_Impl_Functor_Ops_Spec_Ptr(_n)
#define | YB_Impl_Functor_Ops_using(_type2) using second_argument_type = _type2;
#define | YB_Impl_Functor_Ops1(_n, _op, _tRet)
#define | YB_Impl_Functor_Ops2(_n, _op, _tRet)
#define | YB_Impl_Functor_Binary(_n, _op) YB_Impl_Functor_Ops2(_n, _op, _type)
#define | YB_Impl_Functor_Unary(_n, _op) YB_Impl_Functor_Ops1(_n, _op, _type)
#define | YB_Impl_Functor_bool(_n, _op) YB_Impl_Functor_Ops2(_n, _op, bool)
#define | YB_Impl_Functor_bool_Ordered(_n, _op)

## 类型定义

template<class _type , typename = void>
using | ystdex::details::mem_is_transparent_t = typename _type::is_transparent
template<typename _fComp , typename _tDummy , typename _type = void>
using | ystdex::enable_if_transparent_t = enable_if_t< has_mem_is_transparent< _fComp, _tDummy >::value, _type >
| 移除不满足包含 is_transparent 成员类型比较器的重载。 更多...

## 函数

template<bool _bIsPositive, typename _tScalar >
_tScalar & | ystdex::xcrease (_tScalar &_x)
| 选择自增/自减运算。 更多...
template<bool _bIsPositive, typename _tScalar1 , typename _tScalar2 >
_tScalar1 & | ystdex::delta_assign (_tScalar1 &_x, _tScalar2 &_y)
| 选择加法/减法复合赋值运算。 更多...

## 详细描述

通用仿函数。

版本
  r987

作者
  FrankHB frank.nosp@m.hb19.nosp@m.89@gm.nosp@m.ail..nosp@m.com

自从
  build 588

创建时间:
  2015-03-29 00:35:44 +0800

修改时间:
  2020-07-17 01:19 +0800

文本编码:
  UTF-8

模块名称:
  YStandardEx::Functor

扩展标准库头 `<functional>` ，提供若干函数对象。

在文件 functor.hpp 中定义.

## 宏定义说明

## ◆ YB_Impl_Functor_Binary

#define YB_Impl_Functor_Binary | ( |  | _n,
|  |  | _op
| ) |  | YB_Impl_Functor_Ops2(_n, _op, _type)

在文件 functor.hpp 第 316 行定义.

## ◆ YB_Impl_Functor_bool

#define YB_Impl_Functor_bool | ( |  | _n,
|  |  | _op
| ) |  | YB_Impl_Functor_Ops2(_n, _op, bool)

在文件 functor.hpp 第 381 行定义.

## ◆ YB_Impl_Functor_bool_Ordered

#define YB_Impl_Functor_bool_Ordered | ( |  | _n,
|  |  | _op
| ) |  |

值:
YB_Impl_Functor_bool(_n, _op) \
\
YB_Impl_Functor_Ops_Spec_Ptr(_n)

在文件 functor.hpp 第 384 行定义.

## ◆ YB_Impl_Functor_Ops1

#define YB_Impl_Functor_Ops1 | ( |  | _n,
|  |  | _op,
|  |  | _tRet
| ) |  |

值:
YB_Impl_Functor_Ops_Primary(, _n, _tRet, , _op x, const _type& x) \
\
YB_Impl_Functor_Ops_Spec(, _n, typename _type, _type&& x, _op yforward(x))

在文件 functor.hpp 第 304 行定义.

## ◆ YB_Impl_Functor_Ops2

#define YB_Impl_Functor_Ops2 | ( |  | _n,
|  |  | _op,
|  |  | _tRet
| ) |  |

值:
YB_Impl_Functor_Ops_Primary(, _n, _tRet, YB_Impl_Functor_Ops_using(_type), \
x _op y, const _type& x, const _type& y) \
\
YB_Impl_Functor_Ops_Spec(, _n, typename _type1 YPP_Comma typename \
_type2, _type1&& x YPP_Comma _type2&& y, yforward(x) _op yforward(y))

在文件 functor.hpp 第 309 行定义.

## ◆ YB_Impl_Functor_Ops_Primary

#define YB_Impl_Functor_Ops_Primary | ( |  | _q,
|  |  | _n,
|  |  | _tRet,
|  |  | _using_stmt,
|  |  | _expr,
|  |  | ...
| ) |  |

值:
template<typename _type = void> \
struct _n \
{ \
using first_argument_type = _type; \
_using_stmt \
using result_type = _tRet; \
\
YB_Impl_Functor_pushf \
yconstfn _tRet \
operator()(__VA_ARGS__) const _q \
{ \
return _expr; \
} \
YB_Impl_Functor_popf \
};

在文件 functor.hpp 第 248 行定义.

## ◆ YB_Impl_Functor_Ops_Spec

#define YB_Impl_Functor_Ops_Spec | ( |  | _q,
|  |  | _n,
|  |  | _tparams,
|  |  | _params,
|  |  | _expr
| ) |  |

值:
template<> \
struct _n<void> \
{ \
using is_transparent = yimpl(void); \
\
YB_Impl_Functor_pushf \
template<_tparams> \
yconstfn auto \
operator()(_params) const _q -> decltype(_expr) \
{ \
return _expr; \
} \
YB_Impl_Functor_popf \
};

在文件 functor.hpp 第 265 行定义.

## ◆ YB_Impl_Functor_Ops_Spec_Ptr

#define YB_Impl_Functor_Ops_Spec_Ptr | ( |  | _n | ) |

值:
template<typename _type> \
struct _n<_type*> \
{ \
using first_argument_type = _type*; \
using second_argument_type = _type*; \
using result_type = bool; \
\
YB_Impl_Functor_pushf \
yconstfn bool \
operator()(_type* x, _type* y) const yimpl(ynothrow) \
{ \
return std::_n<_type*>()(x, y); \
} \
YB_Impl_Functor_popf \
};

在文件 functor.hpp 第 285 行定义.

## ◆ YB_Impl_Functor_Ops_using

#define YB_Impl_Functor_Ops_using | ( |  | _type2 | ) | using second_argument_type = _type2;

在文件 functor.hpp 第 302 行定义.

## ◆ YB_Impl_Functor_popf

#define YB_Impl_Functor_popf

在文件 functor.hpp 第 242 行定义.

## ◆ YB_Impl_Functor_pushf

#define YB_Impl_Functor_pushf

自从
  build 880

在文件 functor.hpp 第 241 行定义.

## ◆ YB_Impl_Functor_Unary

#define YB_Impl_Functor_Unary | ( |  | _n,
|  |  | _op
| ) |  | YB_Impl_Functor_Ops1(_n, _op, _type)

在文件 functor.hpp 第 319 行定义.

x
const EncapsulationBase & x
Definition: NPLA1Forms.cpp:1536
YB_Impl_Functor_Ops_Spec_Ptr
#define YB_Impl_Functor_Ops_Spec_Ptr(_n)
Definition: functor.hpp:284
YB_Impl_Functor_bool
#define YB_Impl_Functor_bool(_n, _op)
Definition: functor.hpp:380
YPP_Comma
#define YPP_Comma
替换为逗号的预处理记号。
Definition: ydef.h:370
ystdex::details::_type2
_type2
Definition: operators.hpp:241
yforward
#define yforward(_expr)
根据参数类型使用 std::forward 转发对应参数。
Definition: ydef.h:1508
YSLib::UI::y
SPos SPos y
Definition: YWidget.cpp:44
YB_Impl_Functor_Ops_Spec
#define YB_Impl_Functor_Ops_Spec(_q, _n, _tparams, _params, _expr)
Definition: functor.hpp:264
YB_Impl_Functor_Ops_Primary
#define YB_Impl_Functor_Ops_Primary(_q, _n, _tRet, _using_stmt, _expr,...)
Definition: functor.hpp:247
YB_Impl_Functor_Ops_using
#define YB_Impl_Functor_Ops_using(_type2)
Definition: functor.hpp:301
yimpl
#define yimpl(...)
实现标签。
Definition: ydef.h:413
platform::bool
YB_ATTR_nodiscard std::FILE *fp bool
Definition: FileIO.h:1271
ynothrow
#define ynothrow
YSLib 无异常抛出保证：若支持 noexcept 关键字， 指定特定的 noexcept 异常规范。
Definition: ydef.h:1199