YSTest  PreAlpha_b500_20140530
The YSLib Test Project
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
YBaseMacro.h 文件参考

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

#include <ydef.h>
YBaseMacro.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

宏定义

#define DefExtendClass(_attr, _n,...)
 定义直接派生类。 更多...
 
#define PDefCvt(_t)   operator _t()
 
#define ImplExpr(...)
 
#define ImplRet(...)
 
#define ImplThrow(...)
 
#define ImplUnseq(...)
 
#define ImplBodyBase(_b, _n,...)   ImplRet(_b::_n(__VA_ARGS__))
 
#define ImplBodyMem(_m, _n,...)   ImplRet((_m)._n(__VA_ARGS__))
 
#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 ImplEmptyDtor(_t)   inline _t::DefDeDtor(_t)
 
#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::YPP_Concat(Is, _n)())
 
#define DefPredMem(_q, _n, _m)   DefPred(_q, _n, (_m).YPP_Concat(Is, _n)())
 
#define DefGetter(_q, _t, _n,...)
 
#define DefGetterBase(_q, _t, _n, _b)   DefGetter(_q, _t, _n, _b::YPP_Concat(Get, _n)())
 
#define DefGetterMem(_q, _t, _n, _m)   DefGetter(_q, _t, _n, (_m).YPP_Concat(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)
 动态复制。 更多...
 
#define DefFwdFn(_q, _t, _n,...)
 传递函数。 更多...
 
#define DefFwdTmpl(_q, _t, _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 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)
 
#define DefBitmaskEnum(_tEnum)   DefBitmaskOperations(_tEnum, typename std::underlying_type<_tEnum>::type)
 

详细描述

通用基础设施:宏定义。

版本
r2569
作者
FrankHB frank.nosp@m.hb19.nosp@m.89@gm.nosp@m.ail..nosp@m.com
自从
build 204
创建时间:
2010-10-09 09:25:27 +0800
修改时间:
2014-04-23 01:11 +0800
文本编码:
UTF-8
模块名称:
YBaseMacro

在文件 YBaseMacro.h 中定义.

宏定义说明

#define DefClone (   _q,
  _t 
)
值:
PDefH(_t*, clone, ) _q \
ImplRet(new _t(*this))
#define ImplRet(...)
Definition: YBaseMacro.h:97
#define PDefH(_t, _n,...)

动态复制。

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

在文件 YBaseMacro.h221 行定义.

#define DefCvt (   _q,
  _t,
  ... 
)
值:
operator _t() _q \
ImplRet(__VA_ARGS__)
#define ImplRet(...)
Definition: YBaseMacro.h:97

在文件 YBaseMacro.h164 行定义.

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

在文件 YBaseMacro.h167 行定义.

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

在文件 YBaseMacro.h169 行定义.

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

在文件 YBaseMacro.h154 行定义.

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

在文件 YBaseMacro.h136 行定义.

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

在文件 YBaseMacro.h131 行定义.

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

定义默认析构函数。

注解
CWG defect 906 的解决禁止显式默认虚函数,但 CWG defect 1135 的解决撤销了这一限制。 ISO C++11 最终没有此限制。
ISO C++11 不需要显式使用异常规范,可自动推导(参见 ISO C++11 12.4/3 )。 显式异常规范导致使用隐式继承需要保证成员函数的异常规范限制。

在文件 YBaseMacro.h146 行定义.

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

在文件 YBaseMacro.h156 行定义.

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

在文件 YBaseMacro.h138 行定义.

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

在文件 YBaseMacro.h133 行定义.

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

在文件 YBaseMacro.h148 行定义.

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

在文件 YBaseMacro.h161 行定义.

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

在文件 YBaseMacro.h143 行定义.

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

在文件 YBaseMacro.h159 行定义.

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

在文件 YBaseMacro.h141 行定义.

#define DefFwdFn (   _q,
  _t,
  _n,
  ... 
)
值:
inline _t \
_n() _q \
{ \
return (__VA_ARGS__); \
}

传递函数。

自从
build 266

在文件 YBaseMacro.h244 行定义.

#define DefFwdTmpl (   _q,
  _t,
  _n,
  ... 
)
值:
template<typename... _tParams> \
inline _t \
_n(_tParams&&... args) _q \
{ \
return (__VA_ARGS__); \
}
yconstfn const string _tParams && args
Definition: Loader.h:111

传递模板。

自从
build 266

在文件 YBaseMacro.h255 行定义.

#define DefGetter (   _q,
  _t,
  _n,
  ... 
)
值:
_t YPP_Concat(Get, _n)() _q \
ImplRet(__VA_ARGS__)
#define YPP_Concat(x, y)
Definition: ydef.h:163
#define ImplRet(...)
Definition: YBaseMacro.h:97

在文件 YBaseMacro.h180 行定义.

参考自 YSLib::UI::DeclDelegate() , 以及 YSLib::DeclI().

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

在文件 YBaseMacro.h183 行定义.

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

在文件 YBaseMacro.h185 行定义.

#define DefPred (   _q,
  _n,
  ... 
)
值:
bool YPP_Concat(Is, _n)() _q \
ImplRet(__VA_ARGS__)
#define YPP_Concat(x, y)
Definition: ydef.h:163
#define ImplRet(...)
Definition: YBaseMacro.h:97

在文件 YBaseMacro.h172 行定义.

参考自 YSLib::UI::DeclDelegate().

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

在文件 YBaseMacro.h175 行定义.

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

在文件 YBaseMacro.h177 行定义.

#define DefSetter (   _t,
  _n,
  _m 
)
值:
void YPP_Concat(Set, _n)(_t _tempArgName) \
ImplExpr((_m) = _tempArgName)
#define YPP_Concat(x, y)
Definition: ydef.h:163
#define ImplExpr(...)
Definition: YBaseMacro.h:93

在文件 YBaseMacro.h188 行定义.

#define DefSetterBase (   _t,
  _n,
  _b 
)
值:
void YPP_Concat(Set, _n)(_t _tempArgName) \
ImplExpr(_b::YPP_Concat(Set, _n)(_tempArgName))
#define YPP_Concat(x, y)
Definition: ydef.h:163
#define ImplExpr(...)
Definition: YBaseMacro.h:93

在文件 YBaseMacro.h194 行定义.

#define DefSetterBaseDe (   _t,
  _n,
  _b,
  _defv 
)
值:
void YPP_Concat(Set, _n)(_t _tempArgName = _defv) \
ImplExpr(_b::YPP_Concat(Set, _n)(_tempArgName))
#define YPP_Concat(x, y)
Definition: ydef.h:163
#define ImplExpr(...)
Definition: YBaseMacro.h:93

在文件 YBaseMacro.h197 行定义.

#define DefSetterDe (   _t,
  _n,
  _m,
  _defv 
)
值:
void YPP_Concat(Set, _n)(_t _tempArgName = _defv) \
ImplExpr((_m) = _tempArgName)
#define YPP_Concat(x, y)
Definition: ydef.h:163
#define ImplExpr(...)
Definition: YBaseMacro.h:93

在文件 YBaseMacro.h191 行定义.

#define DefSetterDeEx (   _t,
  _n,
  _m,
  _defv,
  ... 
)
值:
void YPP_Concat(Set, _n)(_t _tempArgName = _defv) \
ImplExpr((_m) = (__VA_ARGS__))
#define YPP_Concat(x, y)
Definition: ydef.h:163
#define ImplExpr(...)
Definition: YBaseMacro.h:93

在文件 YBaseMacro.h209 行定义.

#define DefSetterEx (   _t,
  _n,
  _m,
  ... 
)
值:
void YPP_Concat(Set, _n)(_t _tempArgName) \
ImplExpr((_m) = (__VA_ARGS__))
#define YPP_Concat(x, y)
Definition: ydef.h:163
#define ImplExpr(...)
Definition: YBaseMacro.h:93

在文件 YBaseMacro.h206 行定义.

#define DefSetterMem (   _t,
  _n,
  _m 
)
值:
void YPP_Concat(Set, _n)(_t _tempArgName) \
ImplExpr((_m).YPP_Concat(Set, _n)(_tempArgName))
#define YPP_Concat(x, y)
Definition: ydef.h:163
#define ImplExpr(...)
Definition: YBaseMacro.h:93

在文件 YBaseMacro.h200 行定义.

#define DefSetterMemDe (   _t,
  _n,
  _m,
  _defv 
)
值:
void YPP_Concat(Set, _n)(_t _tempArgName = _defv) \
ImplExpr((_m).YPP_Concat(Set, _n)(_tempArgName))
#define YPP_Concat(x, y)
Definition: ydef.h:163
#define ImplExpr(...)
Definition: YBaseMacro.h:93

在文件 YBaseMacro.h203 行定义.

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

在文件 YBaseMacro.h114 行定义.

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

在文件 YBaseMacro.h116 行定义.

#define ImplEmptyDtor (   _t)    inline _t::DefDeDtor(_t)

在文件 YBaseMacro.h151 行定义.

#define ImplExpr (   ...)
值:
{ \
(__VA_ARGS__), void(); \
}

在文件 YBaseMacro.h93 行定义.

#define ImplRet (   ...)
值:
{ \
return __VA_ARGS__; \
}

在文件 YBaseMacro.h97 行定义.

#define ImplThrow (   ...)
值:
{ \
throw __VA_ARGS__; \
}
自从
build 477

在文件 YBaseMacro.h102 行定义.

#define ImplUnseq (   ...)
值:
{ \
yunused(yunseq(__VA_ARGS__)); \
}
#define yunused(...)
标记未使用的表达式。
Definition: ydef.h:697
#define yunseq
无序列依赖表达式组求值。
Definition: ydef.h:748

在文件 YBaseMacro.h107 行定义.

#define PDefCvt (   _t)    operator _t()

在文件 YBaseMacro.h87 行定义.