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

重载操作符。 更多...

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

浏览源代码.

struct  ystdex::details::less_than_comparable2< _type, _type2, _tBase >
 
struct  ystdex::details::less_than_comparable1< _type, _tBase >
 
struct  ystdex::details::equality_comparable2< _type, _type2, _tBase >
 
struct  ystdex::details::equality_comparable1< _type, _tBase >
 
struct  ystdex::details::equivalent2< _type, _type2, _tBase >
 
struct  ystdex::details::equivalent1< _type, _tBase >
 
struct  ystdex::details::partially_ordered2< _type, _type2, _tBase >
 
struct  ystdex::details::partially_ordered1< _type, _tBase >
 
struct  ystdex::details::multipliable2< _type, _type2, _tBase >
 
struct  ystdex::details::multipliable1< _type, _tBase >
 
struct  ystdex::details::addable2< _type, _type2, _tBase >
 
struct  ystdex::details::addable1< _type, _tBase >
 
struct  ystdex::details::subtractable2< _type, _type2, _tBase >
 
struct  ystdex::details::subtractable2_left< _type, _type2, _tBase >
 
struct  ystdex::details::subtractable1< _type, _tBase >
 
struct  ystdex::details::dividable2< _type, _type2, _tBase >
 
struct  ystdex::details::dividable2_left< _type, _type2, _tBase >
 
struct  ystdex::details::dividable1< _type, _tBase >
 
struct  ystdex::details::modable2< _type, _type2, _tBase >
 
struct  ystdex::details::modable2_left< _type, _type2, _tBase >
 
struct  ystdex::details::modable1< _type, _tBase >
 
struct  ystdex::details::xorable2< _type, _type2, _tBase >
 
struct  ystdex::details::xorable1< _type, _tBase >
 
struct  ystdex::details::andable2< _type, _type2, _tBase >
 
struct  ystdex::details::andable1< _type, _tBase >
 
struct  ystdex::details::orable2< _type, _type2, _tBase >
 
struct  ystdex::details::orable1< _type, _tBase >
 
struct  ystdex::details::left_shiftable2< _type, _type2, _tBase >
 
struct  ystdex::details::left_shiftable1< _type, _tBase >
 
struct  ystdex::details::right_shiftable2< _type, _type2, _tBase >
 
struct  ystdex::details::right_shiftable1< _type, _tBase >
 
struct  ystdex::details::incrementable< _type, _tBase >
 
struct  ystdex::details::decrementable< _type, _tBase >
 
struct  ystdex::details::dereferenceable< _type, _tBase >
 
struct  ystdex::details::indexable< _type, _type2, _tBase >
 
struct  ystdex::details::totally_ordered2< _type, _type2, _tBase >
 
struct  ystdex::details::totally_ordered1< _type, _tBase >
 
struct  ystdex::details::additive2< _type, _type2, _tBase >
 
struct  ystdex::details::additive1< _type, _tBase >
 
struct  ystdex::details::multiplicative2< _type, _type2, _tBase >
 
struct  ystdex::details::multiplicative1< _type, _tBase >
 
struct  ystdex::details::integer_multiplicative2< _type, _type2, _tBase >
 
struct  ystdex::details::integer_multiplicative1< _type, _tBase >
 
struct  ystdex::details::arithmetic2< _type, _type2, _tBase >
 
struct  ystdex::details::arithmetic1< _type, _tBase >
 
struct  ystdex::details::integer_arithmetic2< _type, _type2, _tBase >
 
struct  ystdex::details::integer_arithmetic1< _type, _tBase >
 
struct  ystdex::details::bitwise2< _type, _type2, _tBase >
 
struct  ystdex::details::bitwise1< _type, _tBase >
 
struct  ystdex::details::unit_steppable< _type, _tBase >
 
struct  ystdex::details::shiftable2< _type, _type2, _tBase >
 
struct  ystdex::details::shiftable1< _type, _tBase >
 
struct  ystdex::details::ring_operators2< _type, _type2, _tBase >
 
struct  ystdex::details::ring_operators1< _type, _tBase >
 
struct  ystdex::details::ordered_ring_operators2< _type, _type2, _tBase >
 
struct  ystdex::details::ordered_ring_operators1< _type, _tBase >
 
struct  ystdex::details::field_operators2< _type, _type2, _tBase >
 
struct  ystdex::details::field_operators1< _type, _tBase >
 
struct  ystdex::details::ordered_field_operators2< _type, _type2, _tBase >
 
struct  ystdex::details::ordered_field_operators1< _type, _tBase >
 
struct  ystdex::details::euclidean_ring_operators2< _type, _type2, _tBase >
 
struct  ystdex::details::euclidean_ring_operators1< _type, _tBase >
 
struct  ystdex::details::ordered_euclidean_ring_operators2< _type, _type2, _tBase >
 
struct  ystdex::details::ordered_euclidean_ring_operators1< _type, _tBase >
 
struct  ystdex::details::input_iteratable< _type, _tBase >
 
struct  ystdex::details::output_iteratable< _type, _tBase >
 
struct  ystdex::details::forward_iteratable< _type, _tBase >
 
struct  ystdex::details::bidirectional_iteratable< _type, _tBase >
 
struct  ystdex::details::random_access_iteratable< _type, _type2, _tBase >
 
struct  ystdex::is_chained_base< class >
 
struct  ystdex::less_than_comparable< _type, _type2, _tBase, _b >
 
struct  ystdex::less_than_comparable< _type, _type2, _tBase, true >
 
struct  ystdex::less_than_comparable< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< less_than_comparable< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< less_than_comparable2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< less_than_comparable1< _type, _tBase > >
 
struct  ystdex::equality_comparable< _type, _type2, _tBase, _b >
 
struct  ystdex::equality_comparable< _type, _type2, _tBase, true >
 
struct  ystdex::equality_comparable< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< equality_comparable< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< equality_comparable2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< equality_comparable1< _type, _tBase > >
 
struct  ystdex::multipliable< _type, _type2, _tBase, _b >
 
struct  ystdex::multipliable< _type, _type2, _tBase, true >
 
struct  ystdex::multipliable< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< multipliable< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< multipliable2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< multipliable1< _type, _tBase > >
 
struct  ystdex::addable< _type, _type2, _tBase, _b >
 
struct  ystdex::addable< _type, _type2, _tBase, true >
 
struct  ystdex::addable< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< addable< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< addable2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< addable1< _type, _tBase > >
 
struct  ystdex::subtractable< _type, _type2, _tBase, _b >
 
struct  ystdex::subtractable< _type, _type2, _tBase, true >
 
struct  ystdex::subtractable< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< subtractable< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< subtractable2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< subtractable1< _type, _tBase > >
 
struct  ystdex::is_chained_base< subtractable2_left< _type, _type2, _tBase > >
 
struct  ystdex::dividable< _type, _type2, _tBase, _b >
 
struct  ystdex::dividable< _type, _type2, _tBase, true >
 
struct  ystdex::dividable< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< dividable< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< dividable2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< dividable1< _type, _tBase > >
 
struct  ystdex::is_chained_base< dividable2_left< _type, _type2, _tBase > >
 
struct  ystdex::modable< _type, _type2, _tBase, _b >
 
struct  ystdex::modable< _type, _type2, _tBase, true >
 
struct  ystdex::modable< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< modable< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< modable2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< modable1< _type, _tBase > >
 
struct  ystdex::is_chained_base< modable2_left< _type, _type2, _tBase > >
 
struct  ystdex::xorable< _type, _type2, _tBase, _b >
 
struct  ystdex::xorable< _type, _type2, _tBase, true >
 
struct  ystdex::xorable< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< xorable< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< xorable2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< xorable1< _type, _tBase > >
 
struct  ystdex::andable< _type, _type2, _tBase, _b >
 
struct  ystdex::andable< _type, _type2, _tBase, true >
 
struct  ystdex::andable< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< andable< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< andable2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< andable1< _type, _tBase > >
 
struct  ystdex::orable< _type, _type2, _tBase, _b >
 
struct  ystdex::orable< _type, _type2, _tBase, true >
 
struct  ystdex::orable< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< orable< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< orable2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< orable1< _type, _tBase > >
 
struct  ystdex::is_chained_base< incrementable< _type, _tBase > >
 
struct  ystdex::is_chained_base< decrementable< _type, _tBase > >
 
struct  ystdex::is_chained_base< dereferenceable< _type, _tBase > >
 
struct  ystdex::is_chained_base< indexable< _type, _type2, _tBase > >
 
struct  ystdex::left_shiftable< _type, _type2, _tBase, _b >
 
struct  ystdex::left_shiftable< _type, _type2, _tBase, true >
 
struct  ystdex::left_shiftable< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< left_shiftable< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< left_shiftable2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< left_shiftable1< _type, _tBase > >
 
struct  ystdex::right_shiftable< _type, _type2, _tBase, _b >
 
struct  ystdex::right_shiftable< _type, _type2, _tBase, true >
 
struct  ystdex::right_shiftable< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< right_shiftable< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< right_shiftable2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< right_shiftable1< _type, _tBase > >
 
struct  ystdex::equivalent< _type, _type2, _tBase, _b >
 
struct  ystdex::equivalent< _type, _type2, _tBase, true >
 
struct  ystdex::equivalent< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< equivalent< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< equivalent2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< equivalent1< _type, _tBase > >
 
struct  ystdex::partially_ordered< _type, _type2, _tBase, _b >
 
struct  ystdex::partially_ordered< _type, _type2, _tBase, true >
 
struct  ystdex::partially_ordered< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< partially_ordered< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< partially_ordered2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< partially_ordered1< _type, _tBase > >
 
struct  ystdex::totally_ordered< _type, _type2, _tBase, _b >
 
struct  ystdex::totally_ordered< _type, _type2, _tBase, true >
 
struct  ystdex::totally_ordered< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< totally_ordered< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< totally_ordered2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< totally_ordered1< _type, _tBase > >
 
struct  ystdex::additive< _type, _type2, _tBase, _b >
 
struct  ystdex::additive< _type, _type2, _tBase, true >
 
struct  ystdex::additive< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< additive< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< additive2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< additive1< _type, _tBase > >
 
struct  ystdex::multiplicative< _type, _type2, _tBase, _b >
 
struct  ystdex::multiplicative< _type, _type2, _tBase, true >
 
struct  ystdex::multiplicative< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< multiplicative< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< multiplicative2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< multiplicative1< _type, _tBase > >
 
struct  ystdex::integer_multiplicative< _type, _type2, _tBase, _b >
 
struct  ystdex::integer_multiplicative< _type, _type2, _tBase, true >
 
struct  ystdex::integer_multiplicative< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< integer_multiplicative< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< integer_multiplicative2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< integer_multiplicative1< _type, _tBase > >
 
struct  ystdex::arithmetic< _type, _type2, _tBase, _b >
 
struct  ystdex::arithmetic< _type, _type2, _tBase, true >
 
struct  ystdex::arithmetic< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< arithmetic< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< arithmetic2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< arithmetic1< _type, _tBase > >
 
struct  ystdex::integer_arithmetic< _type, _type2, _tBase, _b >
 
struct  ystdex::integer_arithmetic< _type, _type2, _tBase, true >
 
struct  ystdex::integer_arithmetic< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< integer_arithmetic< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< integer_arithmetic2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< integer_arithmetic1< _type, _tBase > >
 
struct  ystdex::bitwise< _type, _type2, _tBase, _b >
 
struct  ystdex::bitwise< _type, _type2, _tBase, true >
 
struct  ystdex::bitwise< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< bitwise< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< bitwise2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< bitwise1< _type, _tBase > >
 
struct  ystdex::is_chained_base< unit_steppable< _type, _tBase > >
 
struct  ystdex::shiftable< _type, _type2, _tBase, _b >
 
struct  ystdex::shiftable< _type, _type2, _tBase, true >
 
struct  ystdex::shiftable< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< shiftable< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< shiftable2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< shiftable1< _type, _tBase > >
 
struct  ystdex::ring_operators< _type, _type2, _tBase, _b >
 
struct  ystdex::ring_operators< _type, _type2, _tBase, true >
 
struct  ystdex::ring_operators< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< ring_operators< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< ring_operators2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< ring_operators1< _type, _tBase > >
 
struct  ystdex::ordered_ring_operators< _type, _type2, _tBase, _b >
 
struct  ystdex::ordered_ring_operators< _type, _type2, _tBase, true >
 
struct  ystdex::ordered_ring_operators< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< ordered_ring_operators< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< ordered_ring_operators2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< ordered_ring_operators1< _type, _tBase > >
 
struct  ystdex::field_operators< _type, _type2, _tBase, _b >
 
struct  ystdex::field_operators< _type, _type2, _tBase, true >
 
struct  ystdex::field_operators< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< field_operators< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< field_operators2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< field_operators1< _type, _tBase > >
 
struct  ystdex::ordered_field_operators< _type, _type2, _tBase, _b >
 
struct  ystdex::ordered_field_operators< _type, _type2, _tBase, true >
 
struct  ystdex::ordered_field_operators< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< ordered_field_operators< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< ordered_field_operators2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< ordered_field_operators1< _type, _tBase > >
 
struct  ystdex::euclidean_ring_operators< _type, _type2, _tBase, _b >
 
struct  ystdex::euclidean_ring_operators< _type, _type2, _tBase, true >
 
struct  ystdex::euclidean_ring_operators< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< euclidean_ring_operators< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< euclidean_ring_operators2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< euclidean_ring_operators1< _type, _tBase > >
 
struct  ystdex::ordered_euclidean_ring_operators< _type, _type2, _tBase, _b >
 
struct  ystdex::ordered_euclidean_ring_operators< _type, _type2, _tBase, true >
 
struct  ystdex::ordered_euclidean_ring_operators< _type, _type, _tBase, false >
 
struct  ystdex::is_chained_base< ordered_euclidean_ring_operators< _type, _type2, _tBase, _b > >
 
struct  ystdex::is_chained_base< ordered_euclidean_ring_operators2< _type, _type2, _tBase > >
 
struct  ystdex::is_chained_base< ordered_euclidean_ring_operators1< _type, _tBase > >
 
struct  ystdex::is_chained_base< input_iteratable< _type, _tBase > >
 
struct  ystdex::is_chained_base< output_iteratable< _type, _tBase > >
 
struct  ystdex::is_chained_base< forward_iteratable< _type, _tBase > >
 
struct  ystdex::is_chained_base< bidirectional_iteratable< _type, _tBase > >
 
struct  ystdex::is_chained_base< random_access_iteratable< _type, _type2, _tBase > >
 
struct  ystdex::operators2< _type, _type2 >
 
struct  ystdex::operators< _type, _type2 >
 
struct  ystdex::operators< _type, _type >
 

命名空间

 ystdex
 
 ystdex::details
 

宏定义

#define YB_OP_FRIEND(_op, _tRet, _expr,...)
 
#define YB_OP_TEMPLATE_HEADER2(_name)
 
#define YB_OP_TEMPLATE_HEADER1(_name)
 
#define YB_OP_COMPARE2(_op, _expr, _param_type, _param_type2)
 
#define YB_OP_COMPARE1(_op, _expr, _param_type)
 
#define YB_OP_COMMUTATIVE(_name, _op)
 
#define YB_OP_NON_COMMUTATIVE(_name, _op)
 
#define YB_OP_BINARY(_name, _op)
 
#define YB_OP_CHAIN2(_name)
 
#define YB_OP_CHAIN1(_name)
 
#define YB_OP_CHAIN(_name)
 

详细描述

重载操作符。

版本
r1444
作者
FrankHB frank.nosp@m.hb19.nosp@m.89@gm.nosp@m.ail..nosp@m.com
自从
build 260
创建时间:
2011-11-13 14:58:05 +0800
修改时间:
2014-04-29 13:37 +0800
文本编码:
UTF-8
模块名称:
YStandardEx::Operators
注解
用法同 Boost.Operators ,但迭代器相关部分参数有所删减。
参见
http://www.boost.org/doc/libs/1_54_0/boost/operators.hpp

在文件 operators.hpp 中定义.

宏定义说明

#define YB_OP_BINARY (   _name,
  _op 
)
值:
YB_OP_TEMPLATE_HEADER2(_name##2) : _tBase \
{ \
YB_OP_FRIEND(_op, _type, x _op##= y, _type x, const _type2& y) \
}; \
YB_OP_TEMPLATE_HEADER1(_name##1) : _tBase \
{ \
YB_OP_FRIEND(_op, _type, x _op##= y, _type x, const _type& y) \
};
#define YB_OP_TEMPLATE_HEADER2(_name)
Definition: operators.hpp:41
#define YB_OP_FRIEND(_op, _tRet, _expr,...)
Definition: operators.hpp:38
#define YB_OP_TEMPLATE_HEADER1(_name)
Definition: operators.hpp:44

在文件 operators.hpp162 行定义.

#define YB_OP_CHAIN (   _name)
值:
using ystdex::details::_name##2; \
template<class _type, class _type2 = _type, class \
_tBase = empty_base<_type>, bool _b = is_chained_base<_type2>::value> \
struct _name : _name##2<_type, _type2, _tBase> \
{}; \
\
using ystdex::details::_name##1; \
template<class _type, class _type2, class _tBase> \
struct _name<_type, _type2, _tBase, true> : _name##1<_type, _type2> \
{}; \
\
template<class _type, class _tBase> \
struct _name<_type, _type, _tBase, false> : _name##1<_type, _tBase> \
{}; \
\
template<class _type, class _type2, class _tBase, bool _b> \
struct is_chained_base<_name<_type, _type2, _tBase, _b>> \
: true_type \
{}; \
YB_OP_CHAIN2(_name##2) \
YB_OP_CHAIN1(_name##1)
#define YB_OP_CHAIN2(_name)
Definition: operators.hpp:384
#define YB_OP_CHAIN1(_name)
Definition: operators.hpp:390

在文件 operators.hpp396 行定义.

#define YB_OP_CHAIN1 (   _name)
值:
using ystdex::details::_name; \
template<class _type, class _tBase> \
struct is_chained_base<_name<_type, _tBase>> : true_type \
{};

在文件 operators.hpp390 行定义.

#define YB_OP_CHAIN2 (   _name)
值:
using ystdex::details::_name; \
template<class _type, class _type2, class _tBase> \
struct is_chained_base<_name<_type, _type2, _tBase>> : true_type \
{};

在文件 operators.hpp384 行定义.

#define YB_OP_COMMUTATIVE (   _name,
  _op 
)
值:
YB_OP_TEMPLATE_HEADER2(_name##2) : _tBase \
{ \
YB_OP_FRIEND(_op, _type, x _op##= y, _type x, const _type2& y) \
YB_OP_FRIEND(_op, _type, y _op##= x, const _type2& x, _type y) \
}; \
YB_OP_TEMPLATE_HEADER1(_name##1) : _tBase \
{ \
YB_OP_FRIEND(_op, _type, x _op##= y, _type x, const _type& y) \
};
#define YB_OP_TEMPLATE_HEADER2(_name)
Definition: operators.hpp:41
#define YB_OP_FRIEND(_op, _tRet, _expr,...)
Definition: operators.hpp:38
#define YB_OP_TEMPLATE_HEADER1(_name)
Definition: operators.hpp:44

在文件 operators.hpp123 行定义.

#define YB_OP_COMPARE1 (   _op,
  _expr,
  _param_type 
)
值:
YB_OP_FRIEND(_op, bool, _expr, const _param_type& x, \
const _param_type& y)
#define YB_OP_FRIEND(_op, _tRet, _expr,...)
Definition: operators.hpp:38

在文件 operators.hpp55 行定义.

#define YB_OP_COMPARE2 (   _op,
  _expr,
  _param_type,
  _param_type2 
)
值:
YB_OP_FRIEND(_op, bool, _expr, const _param_type& x, \
const _param_type2& y)
#define YB_OP_FRIEND(_op, _tRet, _expr,...)
Definition: operators.hpp:38

在文件 operators.hpp52 行定义.

#define YB_OP_FRIEND (   _op,
  _tRet,
  _expr,
  ... 
)
值:
friend yconstfn _tRet \
operator _op (__VA_ARGS__) {return (_expr);}
#define yconstfn
指定编译时常量函数。
Definition: ydef.h:463

在文件 operators.hpp38 行定义.

#define YB_OP_NON_COMMUTATIVE (   _name,
  _op 
)
值:
YB_OP_TEMPLATE_HEADER2(_name##2) : _tBase \
{ \
YB_OP_FRIEND(_op, _type, x _op##= y, _type x, const _type2& y) \
}; \
YB_OP_TEMPLATE_HEADER2(_name##2##_##left) : _tBase \
{ \
YB_OP_FRIEND(_op, _type, _type(x) _op##= y, const _type2& x, \
const _type& y) \
}; \
YB_OP_TEMPLATE_HEADER1(_name##1) : _tBase \
{ \
YB_OP_FRIEND(_op, _type, x _op##= y, _type x, const _type& y) \
};
#define YB_OP_TEMPLATE_HEADER2(_name)
Definition: operators.hpp:41
#define YB_OP_FRIEND(_op, _tRet, _expr,...)
Definition: operators.hpp:38
#define YB_OP_TEMPLATE_HEADER1(_name)
Definition: operators.hpp:44

在文件 operators.hpp134 行定义.

#define YB_OP_TEMPLATE_HEADER1 (   _name)
值:
template<class _type, class _tBase = empty_base<_type>> \
struct _name

在文件 operators.hpp44 行定义.

#define YB_OP_TEMPLATE_HEADER2 (   _name)
值:
template<class _type, class _type2, class _tBase = empty_base<_type>> \
struct _name

在文件 operators.hpp41 行定义.