operator.h

来自「一个对象回调接口库」· C头文件 代码 · 共 1,277 行 · 第 1/5 页

H
1,277
字号
template <>struct lambda_action<logical<or_> >{  template <class T_arg1, class T_arg2>  static typename lambda_action_deduce_result_type<logical<or_>, T_arg1, T_arg2>::type  do_action(T_arg1 _A_1, T_arg2 _A_2)    { return _A_1 || _A_2; }};template <>struct lambda_action<relational<less> >{  template <class T_arg1, class T_arg2>  static typename lambda_action_deduce_result_type<relational<less>, T_arg1, T_arg2>::type  do_action(T_arg1 _A_1, T_arg2 _A_2)    { return _A_1 < _A_2; }};template <>struct lambda_action<relational<greater> >{  template <class T_arg1, class T_arg2>  static typename lambda_action_deduce_result_type<relational<greater>, T_arg1, T_arg2>::type  do_action(T_arg1 _A_1, T_arg2 _A_2)    { return _A_1 > _A_2; }};template <>struct lambda_action<relational<less_equal> >{  template <class T_arg1, class T_arg2>  static typename lambda_action_deduce_result_type<relational<less_equal>, T_arg1, T_arg2>::type  do_action(T_arg1 _A_1, T_arg2 _A_2)    { return _A_1 <= _A_2; }};template <>struct lambda_action<relational<greater_equal> >{  template <class T_arg1, class T_arg2>  static typename lambda_action_deduce_result_type<relational<greater_equal>, T_arg1, T_arg2>::type  do_action(T_arg1 _A_1, T_arg2 _A_2)    { return _A_1 >= _A_2; }};template <>struct lambda_action<relational<equal_to> >{  template <class T_arg1, class T_arg2>  static typename lambda_action_deduce_result_type<relational<equal_to>, T_arg1, T_arg2>::type  do_action(T_arg1 _A_1, T_arg2 _A_2)    { return _A_1 == _A_2; }};template <>struct lambda_action<relational<not_equal_to> >{  template <class T_arg1, class T_arg2>  static typename lambda_action_deduce_result_type<relational<not_equal_to>, T_arg1, T_arg2>::type  do_action(T_arg1 _A_1, T_arg2 _A_2)    { return _A_1 != _A_2; }};template <>struct lambda_action<arithmetic_assign<plus> >{  template <class T_arg1, class T_arg2>  static typename lambda_action_deduce_result_type<arithmetic_assign<plus>, T_arg1, T_arg2>::type  do_action(T_arg1 _A_1, T_arg2 _A_2)    { return _A_1 += _A_2; }};template <>struct lambda_action<arithmetic_assign<minus> >{  template <class T_arg1, class T_arg2>  static typename lambda_action_deduce_result_type<arithmetic_assign<minus>, T_arg1, T_arg2>::type  do_action(T_arg1 _A_1, T_arg2 _A_2)    { return _A_1 -= _A_2; }};template <>struct lambda_action<arithmetic_assign<multiplies> >{  template <class T_arg1, class T_arg2>  static typename lambda_action_deduce_result_type<arithmetic_assign<multiplies>, T_arg1, T_arg2>::type  do_action(T_arg1 _A_1, T_arg2 _A_2)    { return _A_1 *= _A_2; }};template <>struct lambda_action<arithmetic_assign<divides> >{  template <class T_arg1, class T_arg2>  static typename lambda_action_deduce_result_type<arithmetic_assign<divides>, T_arg1, T_arg2>::type  do_action(T_arg1 _A_1, T_arg2 _A_2)    { return _A_1 /= _A_2; }};template <>struct lambda_action<arithmetic_assign<modulus> >{  template <class T_arg1, class T_arg2>  static typename lambda_action_deduce_result_type<arithmetic_assign<modulus>, T_arg1, T_arg2>::type  do_action(T_arg1 _A_1, T_arg2 _A_2)    { return _A_1 %= _A_2; }};template <>struct lambda_action<bitwise_assign<leftshift> >{  template <class T_arg1, class T_arg2>  static typename lambda_action_deduce_result_type<bitwise_assign<leftshift>, T_arg1, T_arg2>::type  do_action(T_arg1 _A_1, T_arg2 _A_2)    { return _A_1 <<= _A_2; }};template <>struct lambda_action<bitwise_assign<rightshift> >{  template <class T_arg1, class T_arg2>  static typename lambda_action_deduce_result_type<bitwise_assign<rightshift>, T_arg1, T_arg2>::type  do_action(T_arg1 _A_1, T_arg2 _A_2)    { return _A_1 >>= _A_2; }};template <>struct lambda_action<bitwise_assign<and_> >{  template <class T_arg1, class T_arg2>  static typename lambda_action_deduce_result_type<bitwise_assign<and_>, T_arg1, T_arg2>::type  do_action(T_arg1 _A_1, T_arg2 _A_2)    { return _A_1 &= _A_2; }};template <>struct lambda_action<bitwise_assign<or_> >{  template <class T_arg1, class T_arg2>  static typename lambda_action_deduce_result_type<bitwise_assign<or_>, T_arg1, T_arg2>::type  do_action(T_arg1 _A_1, T_arg2 _A_2)    { return _A_1 |= _A_2; }};template <>struct lambda_action<bitwise_assign<xor_> >{  template <class T_arg1, class T_arg2>  static typename lambda_action_deduce_result_type<bitwise_assign<xor_>, T_arg1, T_arg2>::type  do_action(T_arg1 _A_1, T_arg2 _A_2)    { return _A_1 ^= _A_2; }};template <>struct lambda_action<other<subscript> >{  template <class T_arg1, class T_arg2>  static typename lambda_action_deduce_result_type<other<subscript>, T_arg1, T_arg2>::type  do_action(T_arg1 _A_1, T_arg2 _A_2)    { return _A_1[_A_2]; }};template <>struct lambda_action<other<assign> >{  template <class T_arg1, class T_arg2>  static typename lambda_action_deduce_result_type<other<assign>, T_arg1, T_arg2>::type  do_action(T_arg1 _A_1, T_arg2 _A_2)    { return _A_1 = _A_2; }};template <>struct lambda_action_unary<unary_arithmetic<pre_increment> >{  template <class T_arg>  static typename lambda_action_unary_deduce_result_type<unary_arithmetic<pre_increment>, T_arg>::type  do_action(T_arg _Aa)    { return ++_Aa; }};template <>struct lambda_action_unary<unary_arithmetic<pre_decrement> >{  template <class T_arg>  static typename lambda_action_unary_deduce_result_type<unary_arithmetic<pre_decrement>, T_arg>::type  do_action(T_arg _Aa)    { return --_Aa; }};template <>struct lambda_action_unary<unary_arithmetic<negate> >{  template <class T_arg>  static typename lambda_action_unary_deduce_result_type<unary_arithmetic<negate>, T_arg>::type  do_action(T_arg _Aa)    { return -_Aa; }};template <>struct lambda_action_unary<unary_bitwise<not_> >{  template <class T_arg>  static typename lambda_action_unary_deduce_result_type<unary_bitwise<not_>, T_arg>::type  do_action(T_arg _Aa)    { return ~_Aa; }};template <>struct lambda_action_unary<unary_logical<not_> >{  template <class T_arg>  static typename lambda_action_unary_deduce_result_type<unary_logical<not_>, T_arg>::type  do_action(T_arg _Aa)    { return !_Aa; }};template <>struct lambda_action_unary<unary_other<address> >{  template <class T_arg>  static typename lambda_action_unary_deduce_result_type<unary_other<address>, T_arg>::type  do_action(T_arg _Aa)    { return &_Aa; }};template <>struct lambda_action_unary<unary_other<dereference> >{  template <class T_arg>  static typename lambda_action_unary_deduce_result_type<unary_other<dereference>, T_arg>::type  do_action(T_arg _Aa)    { return *_Aa; }};template <class T_type>struct lambda_action_convert<cast_<reinterpret_>, T_type>{  template <class T_arg>  static typename lambda_action_convert_deduce_result_type<cast_<reinterpret_>, T_type, T_arg>::type  do_action(T_arg _Aa)    { return reinterpret_cast<T_type>(_Aa); }};template <class T_type>struct lambda_action_convert<cast_<static_>, T_type>{  template <class T_arg>  static typename lambda_action_convert_deduce_result_type<cast_<static_>, T_type, T_arg>::type  do_action(T_arg _Aa)    { return static_cast<T_type>(_Aa); }};template <class T_type>struct lambda_action_convert<cast_<dynamic_>, T_type>{

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?