YSTest: ybasemac.h 文件参考

YSTest PreAlpha_b400_20130424 The YSLib Test Project

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

- 文件列表
- 文件成员

全部 类 命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义 组 页
宏定义
ybasemac.h 文件参考
Core

通用基础设施：宏定义。 更多...

此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

## 宏定义

#define | yJOIN(x, y) x ## y
#define | YSL_BEGIN namespace YSLib {
#define | YSL_END }
#define | YSL_BEGIN_NAMESPACE(_n) namespace _n {
#define | YSL_END_NAMESPACE(_n) }
#define | _yInterface struct
#define | implements public
#define | _yInterfaceHead(_n)
| 定义接口类型头部。
#define | FwdDeclI(_n) _yInterface _n;
#define | DeclI(_attr, _n)
#define | DeclDerivedI(_attr, _n,...)
#define | ImplI(...) virtual
#define | ImplA(...)
#define | DeclIEntry(_sig) virtual _sig = 0;
#define | EndDecl };
#define | DeclSEntry(...)
| 静态接口。
#define | ImplS(...)
| 静态接口实现。
#define | DefExtendClass(_attr, _n,...)
| 定义直接派生类。
#define | PDefH(_t, _n,...) _t _n(__VA_ARGS__)
#define | PDefHOp(_t, _op,...) PDefH(_t, operator _op, __VA_ARGS__)
#define | PDefCvt(_t) operator _t()
#define | ImplExpr(...)
#define | ImplRet(...)
#define | ImplUnseq(...)
#define | ImplBodyBase(_b, _n,...) ImplRet(_b::_n(__VA_ARGS__))
#define | ImplBodyMem(_m, _n,...) ImplRet((_m)._n(__VA_ARGS__))
#define | DefEmptyDtor(_t)
| 定义空析构函数。
#define | ImplEmptyDtor(_t) inline _t::DefEmptyDtor(_t)
#define | DefDeCtor(_t) _t() = default;
#define | DefDelCtor(_t) _t() = delete;
#define | DefDeCopyCtor(_t) _t(const _t&) = default;
#define | DefDelCopyCtor(_t) _t(const _t&) = delete;
#define | DefDeMoveCtor(_t) _t(_t&&) = default;
#define | DefDelMoveCtor(_t) _t(_t&&) = delete;
#define | DefDeDtor(_t) ~_t() = default;
#define | DefDelDtor(_t) ~_t() = delete;
#define | DefDeCopyAssignment(_t) _t& operator=(const _t&) = default;
#define | DefDelCopyAssignment(_t) _t& operator=(const _t&) = delete;
#define | DefDeMoveAssignment(_t) _t& operator=(_t&&) = default;
#define | DefDelMoveAssignment(_t) _t& operator=(_t&&) = delete;
#define | DefCvt(_q, _t,...)
#define | DefCvtBase(_q, _t, _b) DefCvt(_q, _t, _b::operator _t())
#define | DefCvtMem(_q, _t, _m) DefCvt(_q, _t, (_m).operator _t())
#define | DefPred(_q, _n,...)
#define | DefPredBase(_q, _n, _b) DefPred(_q, _n, _b::yJOIN(Is, _n)())
#define | DefPredMem(_q, _n, _m) DefPred(_q, _n, (_m).yJOIN(Is, _n)())
#define | DefGetter(_q, _t, _n,...)
#define | DefGetterBase(_q, _t, _n, _b) DefGetter(_q, _t, _n, _b::yJOIN(Get, _n)())
#define | DefGetterMem(_q, _t, _n, _m) DefGetter(_q, _t, _n, (_m).yJOIN(Get, _n)())
#define | DefSetter(_t, _n, _m)
#define | DefSetterDe(_t, _n, _m, _defv)
#define | DefSetterBase(_t, _n, _b)
#define | DefSetterBaseDe(_t, _n, _b, _defv)
#define | DefSetterMem(_t, _n, _m)
#define | DefSetterMemDe(_t, _n, _m, _defv)
#define | DefSetterEx(_t, _n, _m,...)
#define | DefSetterDeEx(_t, _n, _m, _defv,...)
#define | DefClone(_q, _t, _n)
| 动态复制。
#define | DefFwdFn(_q, _t, _n,...)
| 传递函数。
#define | DefFwdTmpl(_q, _t, _n,...)
| 传递模板。
#define | DefBitmaskAnd(_tBitmask, _tInt)
| 位掩码类型操作。
#define | DefBitmaskOr(_tBitmask, _tInt)
#define | DefBitmaskXor(_tBitmask, _tInt)
#define | DefBitmaskNot(_tBitmask, _tInt)
#define | DefBitmaskAndAssignment(_tBitmask, _tInt)
#define | DefBitmaskOrAssignment(_tBitmask, _tInt)
#define | DefBitmaskXorAssignment(_tBitmask, _tInt)
#define | DefBitmaskOperations(_tBitmask, _tInt)

## 详细描述

通用基础设施：宏定义。

版本
  r2399

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

自从
  build 204

创建时间:
  2010-10-09 09:25:27 +0800

修改时间:
  2013-03-23 20:33 +0800

文本编码:
  UTF-8

模块名称:
  YSLib::Core::YBaseMacro

在文件 ybasemac.h 中定义.

## 宏定义说明

#define _yInterface struct

在文件 ybasemac.h 第 102 行定义.

#define _yInterfaceHead | ( |  | _n | ) |

值:
{ \
virtual ~_n() {}

定义接口类型头部。

参见
  DefEmptyDtor

在文件 ybasemac.h 第 111 行定义.

#define DeclDerivedI | ( |  | _attr,
|  |  | _n,
|  |  | ...
| ) |  |

值:
_yInterface _attr _n : __VA_ARGS__ \
_yInterfaceHead(_n)

在文件 ybasemac.h 第 133 行定义.

#define DeclI | ( |  | _attr,
|  |  | _n
| ) |  |

值:
_yInterface _attr _n \
_yInterfaceHead(_n)

在文件 ybasemac.h 第 121 行定义.

#define DeclIEntry | ( |  | _sig | ) | virtual _sig = 0;

在文件 ybasemac.h 第 144 行定义.

#define DeclSEntry | ( |  | ... | ) |

静态接口。

自从
  build 266

在文件 ybasemac.h 第 153 行定义.

#define DefBitmaskAnd | ( |  | _tBitmask,
|  |  | _tInt
| ) |  |

值:
yconstfn _tBitmask operator&(_tBitmask _x, _tBitmask _y) \
ImplRet(static_cast<_tBitmask>( \
static_cast<_tInt>(_x) & static_cast<_tInt>(_y)))

位掩码类型操作。

注解
  参见 ISO C++2011 17.5.2.1.3[bitmask.types] 。

自从
  build 270

在文件 ybasemac.h 第 354 行定义.

#define DefBitmaskAndAssignment | ( |  | _tBitmask,
|  |  | _tInt
| ) |  |

值:
inline _tBitmask& operator&=(_tBitmask& _x, _tBitmask _y) \
ImplRet(_x = _x & _y)

在文件 ybasemac.h 第 373 行定义.

#define DefBitmaskNot | ( |  | _tBitmask,
|  |  | _tInt
| ) |  |

值:
yconstfn _tBitmask operator~(_tBitmask _x) \
ImplRet(static_cast<_tBitmask>(~static_cast<_tInt>(_x)))

在文件 ybasemac.h 第 369 行定义.

#define DefBitmaskOperations | ( |  | _tBitmask,
|  |  | _tInt
| ) |  |

值:
DefBitmaskAnd(_tBitmask, _tInt) \
DefBitmaskOr(_tBitmask, _tInt) \
DefBitmaskXor(_tBitmask, _tInt) \
DefBitmaskNot(_tBitmask, _tInt) \
DefBitmaskAndAssignment(_tBitmask, _tInt) \
DefBitmaskOrAssignment(_tBitmask, _tInt) \
DefBitmaskXorAssignment(_tBitmask, _tInt)

在文件 ybasemac.h 第 385 行定义.

#define DefBitmaskOr | ( |  | _tBitmask,
|  |  | _tInt
| ) |  |

值:
yconstfn _tBitmask operator|(_tBitmask _x, _tBitmask _y) \
ImplRet(static_cast<_tBitmask>( \
static_cast<_tInt>(_x) | static_cast<_tInt>(_y)))

在文件 ybasemac.h 第 359 行定义.

#define DefBitmaskOrAssignment | ( |  | _tBitmask,
|  |  | _tInt
| ) |  |

值:
inline _tBitmask& operator|=(_tBitmask& _x, _tBitmask _y) \
ImplRet(_x = _x | _y)

在文件 ybasemac.h 第 377 行定义.

#define DefBitmaskXor | ( |  | _tBitmask,
|  |  | _tInt
| ) |  |

值:
yconstfn _tBitmask operator^(_tBitmask _x, _tBitmask _y) \
ImplRet(static_cast<_tBitmask>( \
static_cast<_tInt>(_x) ^ static_cast<_tInt>(_y)))

在文件 ybasemac.h 第 364 行定义.

#define DefBitmaskXorAssignment | ( |  | _tBitmask,
|  |  | _tInt
| ) |  |

值:
inline _tBitmask& operator^=(_tBitmask& _x, _tBitmask _y) \
ImplRet(_x = _x ^ _y)

在文件 ybasemac.h 第 381 行定义.

#define DefClone | ( |  | _q,
|  |  | _t,
|  |  | _n
| ) |  |

值:
_t* \
_n() _q \
{ \
return new _t(*this); \
}

动态复制。

注解
  需要在满足 `CopyConstructible` 的类的定义内。
  如需要多态复制，需要显示前置 `virtual` 或加入 `override` 等指示符。

自从
  build 384

在文件 ybasemac.h 第 313 行定义.

#define DefCvt | ( |  | _q,
|  |  | _t,
|  |  | ...
| ) |  |

值:
operator _t() _q \
ImplRet(__VA_ARGS__)

在文件 ybasemac.h 第 256 行定义.

#define DefCvtBase | ( |  | _q,
|  |  | _t,
|  |  | _b
| ) |  | DefCvt(_q, _t, _b::operator _t())

在文件 ybasemac.h 第 259 行定义.

#define DefCvtMem | ( |  | _q,
|  |  | _t,
|  |  | _m
| ) |  | DefCvt(_q, _t, (_m).operator _t())

在文件 ybasemac.h 第 261 行定义.

#define DefDeCopyAssignment | ( |  | _t | ) | _t& operator=(const _t&) = default;

在文件 ybasemac.h 第 246 行定义.

#define DefDeCopyCtor | ( |  | _t | ) | _t(const _t&) = default;

在文件 ybasemac.h 第 231 行定义.

#define DefDeCtor | ( |  | _t | ) | _t() = default;

在文件 ybasemac.h 第 226 行定义.

#define DefDeDtor | ( |  | _t | ) | ~_t() = default;

在文件 ybasemac.h 第 241 行定义.

#define DefDelCopyAssignment | ( |  | _t | ) | _t& operator=(const _t&) = delete;

在文件 ybasemac.h 第 248 行定义.

#define DefDelCopyCtor | ( |  | _t | ) | _t(const _t&) = delete;

在文件 ybasemac.h 第 233 行定义.

#define DefDelCtor | ( |  | _t | ) | _t() = delete;

在文件 ybasemac.h 第 228 行定义.

#define DefDelDtor | ( |  | _t | ) | ~_t() = delete;

在文件 ybasemac.h 第 243 行定义.

#define DefDelMoveAssignment | ( |  | _t | ) | _t& operator=(_t&&) = delete;

在文件 ybasemac.h 第 253 行定义.

#define DefDelMoveCtor | ( |  | _t | ) | _t(_t&&) = delete;

在文件 ybasemac.h 第 238 行定义.

#define DefDeMoveAssignment | ( |  | _t | ) | _t& operator=(_t&&) = default;

在文件 ybasemac.h 第 251 行定义.

#define DefDeMoveCtor | ( |  | _t | ) | _t(_t&&) = default;

在文件 ybasemac.h 第 236 行定义.

#define DefEmptyDtor | ( |  | _t | ) |

值:
~_t() \
{}

定义空析构函数。

注解
  与显式 default 不同，允许虚函数。
  C++11 不需要显式使用异常规范，可自动推导（参见 ISO C++11 12.4/3 ）。 显式异常规范导致使用隐式继承需要保证成员函数的异常规范限制。

在文件 ybasemac.h 第 220 行定义.

#define DefExtendClass | ( |  | _attr,
|  |  | _n,
|  |  | ...
| ) |  |

值:
class _attr _n : __VA_ARGS__ \
{ \
public: \
_n(); \
};

定义直接派生类。

注解
  仅构造函数。不定义成员，避免对象切片或其它成员存储泄漏问题。

自从
  build 352

在文件 ybasemac.h 第 166 行定义.

#define DefFwdFn | ( |  | _q,
|  |  | _t,
|  |  | _n,
|  |  | ...
| ) |  |

值:
inline _t \
_n() _q \
{ \
return (__VA_ARGS__); \
}

传递函数。

自从
  build 266

在文件 ybasemac.h 第 328 行定义.

#define DefFwdTmpl | ( |  | _q,
|  |  | _t,
|  |  | _n,
|  |  | ...
| ) |  |

值:
template<typename... _tParams> \
inline _t \
_n(_tParams&&... args) _q \
{ \
return (__VA_ARGS__); \
}

传递模板。

自从
  build 266

在文件 ybasemac.h 第 339 行定义.

#define DefGetter | ( |  | _q,
|  |  | _t,
|  |  | _n,
|  |  | ...
| ) |  |

值:
_t yJOIN(Get, _n)() _q \
ImplRet(__VA_ARGS__)

在文件 ybasemac.h 第 272 行定义.

#define DefGetterBase | ( |  | _q,
|  |  | _t,
|  |  | _n,
|  |  | _b
| ) |  | DefGetter(_q, _t, _n, _b::yJOIN(Get, _n)())

在文件 ybasemac.h 第 275 行定义.

#define DefGetterMem | ( |  | _q,
|  |  | _t,
|  |  | _n,
|  |  | _m
| ) |  | DefGetter(_q, _t, _n, (_m).yJOIN(Get, _n)())

在文件 ybasemac.h 第 277 行定义.

#define DefPred | ( |  | _q,
|  |  | _n,
|  |  | ...
| ) |  |

值:
bool yJOIN(Is, _n)() _q \
ImplRet(__VA_ARGS__)

在文件 ybasemac.h 第 264 行定义.

#define DefPredBase | ( |  | _q,
|  |  | _n,
|  |  | _b
| ) |  | DefPred(_q, _n, _b::yJOIN(Is, _n)())

在文件 ybasemac.h 第 267 行定义.

#define DefPredMem | ( |  | _q,
|  |  | _n,
|  |  | _m
| ) |  | DefPred(_q, _n, (_m).yJOIN(Is, _n)())

在文件 ybasemac.h 第 269 行定义.

#define DefSetter | ( |  | _t,
|  |  | _n,
|  |  | _m
| ) |  |

值:
void yJOIN(Set, _n)(_t _tempArgName) \
ImplExpr((_m) = _tempArgName)

在文件 ybasemac.h 第 280 行定义.

#define DefSetterBase | ( |  | _t,
|  |  | _n,
|  |  | _b
| ) |  |

值:
void yJOIN(Set, _n)(_t _tempArgName) \
ImplExpr(_b::yJOIN(Set, _n)(_tempArgName))

在文件 ybasemac.h 第 286 行定义.

#define DefSetterBaseDe | ( |  | _t,
|  |  | _n,
|  |  | _b,
|  |  | _defv
| ) |  |

值:
void yJOIN(Set, _n)(_t _tempArgName = _defv) \
ImplExpr(_b::yJOIN(Set, _n)(_tempArgName))

在文件 ybasemac.h 第 289 行定义.

#define DefSetterDe | ( |  | _t,
|  |  | _n,
|  |  | _m,
|  |  | _defv
| ) |  |

值:
void yJOIN(Set, _n)(_t _tempArgName = _defv) \
ImplExpr((_m) = _tempArgName)

在文件 ybasemac.h 第 283 行定义.

#define DefSetterDeEx | ( |  | _t,
|  |  | _n,
|  |  | _m,
|  |  | _defv,
|  |  | ...
| ) |  |

值:
void yJOIN(Set, _n)(_t _tempArgName = _defv) \
ImplExpr((_m) = (__VA_ARGS__))

在文件 ybasemac.h 第 301 行定义.

#define DefSetterEx | ( |  | _t,
|  |  | _n,
|  |  | _m,
|  |  | ...
| ) |  |

值:
void yJOIN(Set, _n)(_t _tempArgName) \
ImplExpr((_m) = (__VA_ARGS__))

在文件 ybasemac.h 第 298 行定义.

#define DefSetterMem | ( |  | _t,
|  |  | _n,
|  |  | _m
| ) |  |

值:
void yJOIN(Set, _n)(_t _tempArgName) \
ImplExpr((_m).yJOIN(Set, _n)(_tempArgName))

在文件 ybasemac.h 第 292 行定义.

#define DefSetterMemDe | ( |  | _t,
|  |  | _n,
|  |  | _m,
|  |  | _defv
| ) |  |

值:
void yJOIN(Set, _n)(_t _tempArgName = _defv) \
ImplExpr((_m).yJOIN(Set, _n)(_tempArgName))

在文件 ybasemac.h 第 295 行定义.

#define EndDecl };

在文件 ybasemac.h 第 146 行定义.

#define FwdDeclI | ( |  | _n | ) | _yInterface _n;

在文件 ybasemac.h 第 114 行定义.

#define ImplA | ( |  | ... | ) |

在文件 ybasemac.h 第 142 行定义.

#define ImplBodyBase | ( |  | _b,
|  |  | _n,
|  |  | ...
| ) |  | ImplRet(_b::_n(__VA_ARGS__))

在文件 ybasemac.h 第 205 行定义.

#define ImplBodyMem | ( |  | _m,
|  |  | _n,
|  |  | ...
| ) |  | ImplRet((_m)._n(__VA_ARGS__))

在文件 ybasemac.h 第 207 行定义.

#define implements public

在文件 ybasemac.h 第 104 行定义.

#define ImplEmptyDtor | ( |  | _t | ) | inline _t::DefEmptyDtor(_t)

在文件 ybasemac.h 第 223 行定义.

#define ImplExpr | ( |  | ... | ) |

值:
{ \
(__VA_ARGS__), void(); \
}

在文件 ybasemac.h 第 188 行定义.

#define ImplI | ( |  | ... | ) | virtual

在文件 ybasemac.h 第 138 行定义.

#define ImplRet | ( |  | ... | ) |

值:
{ \
return (__VA_ARGS__); \
}

在文件 ybasemac.h 第 192 行定义.

#define ImplS | ( |  | ... | ) |

静态接口实现。

自从
  build 266

在文件 ybasemac.h 第 158 行定义.

#define ImplUnseq | ( |  | ... | ) |

值:
{ \
static_cast<void>(yunseq(__VA_ARGS__)); \
}

在文件 ybasemac.h 第 198 行定义.

#define PDefCvt | ( |  | _t | ) | operator _t()

在文件 ybasemac.h 第 182 行定义.

#define PDefH | ( |  | _t,
|  |  | _n,
|  |  | ...
| ) |  | _t _n(__VA_ARGS__)

在文件 ybasemac.h 第 177 行定义.

#define PDefHOp | ( |  | _t,
|  |  | _op,
|  |  | ...
| ) |  | PDefH(_t, operator _op, __VA_ARGS__)

在文件 ybasemac.h 第 179 行定义.

#define yJOIN | ( |  | x,
|  |  | y
| ) |  | x ## y

待办事项:
  检查语言实现的必要支持：可变参数宏。

在文件 ybasemac.h 第 44 行定义.

#define YSL_BEGIN namespace YSLib {

在文件 ybasemac.h 第 49 行定义.

#define YSL_BEGIN_NAMESPACE | ( |  | _n | ) | namespace _n {

在文件 ybasemac.h 第 52 行定义.

#define YSL_END }

在文件 ybasemac.h 第 50 行定义.

#define YSL_END_NAMESPACE | ( |  | _n | ) | }

在文件 ybasemac.h 第 53 行定义.