⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 operator.h

📁 一个对象回调接口库
💻 H
📖 第 1 页 / 共 5 页
字号:
    { typedef typename arg_type::template deduce_result_type<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass,typename type_trait<T_arg4>::pass,typename type_trait<T_arg5>::pass,typename type_trait<T_arg6>::pass,typename type_trait<T_arg7>::pass>::type operand_type;      typedef typename lambda_action_unary_deduce_result_type<T_action, operand_type>::type type;    };  typedef typename lambda_action_unary_deduce_result_type<      T_action,      typename arg_type::result_type    >::type result_type;  result_type  operator ()() const;  template <class T_arg1>  typename deduce_result_type<T_arg1>::type  operator ()(T_arg1 _A_1) const    {      return lambda_action_unary<T_action>::template do_action<            typename deduce_result_type<typename type_trait<T_arg1>::pass>::operand_type>        (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<typename type_trait<T_arg1>::pass>            (_A_1));    }  #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD  template <class T_arg1>  typename deduce_result_type<T_arg1>::type  sun_forte_workaround(T_arg1 _A_1) const    {      return lambda_action_unary<T_action>::template do_action<            typename deduce_result_type<typename type_trait<T_arg1>::pass>::operand_type>        (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<typename type_trait<T_arg1>::pass>            (_A_1));    }  #endif  template <class T_arg1,class T_arg2>  typename deduce_result_type<T_arg1,T_arg2>::type  operator ()(T_arg1 _A_1,T_arg2 _A_2) const    {      return lambda_action_unary<T_action>::template do_action<            typename deduce_result_type<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass>::operand_type>        (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass>            (_A_1,_A_2));    }  #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD  template <class T_arg1,class T_arg2>  typename deduce_result_type<T_arg1,T_arg2>::type  sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2) const    {      return lambda_action_unary<T_action>::template do_action<            typename deduce_result_type<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass>::operand_type>        (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass>            (_A_1,_A_2));    }  #endif  template <class T_arg1,class T_arg2,class T_arg3>  typename deduce_result_type<T_arg1,T_arg2,T_arg3>::type  operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const    {      return lambda_action_unary<T_action>::template do_action<            typename deduce_result_type<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass>::operand_type>        (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass>            (_A_1,_A_2,_A_3));    }  #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD  template <class T_arg1,class T_arg2,class T_arg3>  typename deduce_result_type<T_arg1,T_arg2,T_arg3>::type  sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const    {      return lambda_action_unary<T_action>::template do_action<            typename deduce_result_type<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass>::operand_type>        (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass>            (_A_1,_A_2,_A_3));    }  #endif  template <class T_arg1,class T_arg2,class T_arg3,class T_arg4>  typename deduce_result_type<T_arg1,T_arg2,T_arg3,T_arg4>::type  operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const    {      return lambda_action_unary<T_action>::template do_action<            typename deduce_result_type<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass,typename type_trait<T_arg4>::pass>::operand_type>        (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass,typename type_trait<T_arg4>::pass>            (_A_1,_A_2,_A_3,_A_4));    }  #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD  template <class T_arg1,class T_arg2,class T_arg3,class T_arg4>  typename deduce_result_type<T_arg1,T_arg2,T_arg3,T_arg4>::type  sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4) const    {      return lambda_action_unary<T_action>::template do_action<            typename deduce_result_type<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass,typename type_trait<T_arg4>::pass>::operand_type>        (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass,typename type_trait<T_arg4>::pass>            (_A_1,_A_2,_A_3,_A_4));    }  #endif  template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5>  typename deduce_result_type<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>::type  operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const    {      return lambda_action_unary<T_action>::template do_action<            typename deduce_result_type<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass,typename type_trait<T_arg4>::pass,typename type_trait<T_arg5>::pass>::operand_type>        (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass,typename type_trait<T_arg4>::pass,typename type_trait<T_arg5>::pass>            (_A_1,_A_2,_A_3,_A_4,_A_5));    }  #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD  template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5>  typename deduce_result_type<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>::type  sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5) const    {      return lambda_action_unary<T_action>::template do_action<            typename deduce_result_type<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass,typename type_trait<T_arg4>::pass,typename type_trait<T_arg5>::pass>::operand_type>        (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass,typename type_trait<T_arg4>::pass,typename type_trait<T_arg5>::pass>            (_A_1,_A_2,_A_3,_A_4,_A_5));    }  #endif  template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6>  typename deduce_result_type<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>::type  operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const    {      return lambda_action_unary<T_action>::template do_action<            typename deduce_result_type<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass,typename type_trait<T_arg4>::pass,typename type_trait<T_arg5>::pass,typename type_trait<T_arg6>::pass>::operand_type>        (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass,typename type_trait<T_arg4>::pass,typename type_trait<T_arg5>::pass,typename type_trait<T_arg6>::pass>            (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6));    }  #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD  template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6>  typename deduce_result_type<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>::type  sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6) const    {      return lambda_action_unary<T_action>::template do_action<            typename deduce_result_type<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass,typename type_trait<T_arg4>::pass,typename type_trait<T_arg5>::pass,typename type_trait<T_arg6>::pass>::operand_type>        (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass,typename type_trait<T_arg4>::pass,typename type_trait<T_arg5>::pass,typename type_trait<T_arg6>::pass>            (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6));    }  #endif  template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6,class T_arg7>  typename deduce_result_type<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>::type  operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const    {      return lambda_action_unary<T_action>::template do_action<            typename deduce_result_type<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass,typename type_trait<T_arg4>::pass,typename type_trait<T_arg5>::pass,typename type_trait<T_arg6>::pass,typename type_trait<T_arg7>::pass>::operand_type>        (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass,typename type_trait<T_arg4>::pass,typename type_trait<T_arg5>::pass,typename type_trait<T_arg6>::pass,typename type_trait<T_arg7>::pass>            (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7));    }  #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD  template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6,class T_arg7>  typename deduce_result_type<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>::type  sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3,T_arg4 _A_4,T_arg5 _A_5,T_arg6 _A_6,T_arg7 _A_7) const    {      return lambda_action_unary<T_action>::template do_action<            typename deduce_result_type<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass,typename type_trait<T_arg4>::pass,typename type_trait<T_arg5>::pass,typename type_trait<T_arg6>::pass,typename type_trait<T_arg7>::pass>::operand_type>        (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass,typename type_trait<T_arg4>::pass,typename type_trait<T_arg5>::pass,typename type_trait<T_arg6>::pass,typename type_trait<T_arg7>::pass>            (_A_1,_A_2,_A_3,_A_4,_A_5,_A_6,_A_7));    }  #endif  lambda_operator_unary(typename type_trait<T_type>::take a)    : arg_(a) {}  arg_type arg_;};template <class T_action, class T_type>typename lambda_operator_unary<T_action, T_type>::result_typelambda_operator_unary<T_action, T_type>::operator ()() const  { return lambda_action_unary<T_action>::template do_action<      typename arg_type::result_type>      (arg_()); }template <class T_action, class T_lambda_action, class T_arg>void visit_each(const T_action& _A_action,                const lambda_operator_unary<T_lambda_action, T_arg>& _A_target){  visit_each(_A_action, _A_target.arg_);}template <class T_action, class T_type, class T_arg>struct lambda_operator_convert : public lambda_base{  typedef typename lambda<T_arg>::lambda_type arg_type;  template <class T_arg1=void,class T_arg2=void,class T_arg3=void,class T_arg4=void,class T_arg5=void,class T_arg6=void,class T_arg7=void>  struct deduce_result_type    { typedef typename arg_type::template deduce_result_type<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass,typename type_trait<T_arg4>::pass,typename type_trait<T_arg5>::pass,typename type_trait<T_arg6>::pass,typename type_trait<T_arg7>::pass>::type operand_type;      typedef typename lambda_action_convert_deduce_result_type<T_action, T_type, operand_type>::type type;    };  typedef typename lambda_action_convert_deduce_result_type<      T_action, T_type,      typename arg_type::result_type    >::type result_type;  result_type  operator ()() const;  template <class T_arg1>  typename deduce_result_type<T_arg1>::type  operator ()(T_arg1 _A_1) const    {      return lambda_action_convert<T_action, T_type>::template do_action<            typename deduce_result_type<typename type_trait<T_arg1>::pass>::operand_type>        (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<typename type_trait<T_arg1>::pass>            (_A_1));    }  #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD  template <class T_arg1>  typename deduce_result_type<T_arg1>::type  sun_forte_workaround(T_arg1 _A_1) const    {      return lambda_action_convert<T_action, T_type>::template do_action<            typename deduce_result_type<typename type_trait<T_arg1>::pass>::operand_type>        (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<typename type_trait<T_arg1>::pass>            (_A_1));    }  #endif  template <class T_arg1,class T_arg2>  typename deduce_result_type<T_arg1,T_arg2>::type  operator ()(T_arg1 _A_1,T_arg2 _A_2) const    {      return lambda_action_convert<T_action, T_type>::template do_action<            typename deduce_result_type<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass>::operand_type>        (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass>            (_A_1,_A_2));    }  #ifndef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD  template <class T_arg1,class T_arg2>  typename deduce_result_type<T_arg1,T_arg2>::type  sun_forte_workaround(T_arg1 _A_1,T_arg2 _A_2) const    {      return lambda_action_convert<T_action, T_type>::template do_action<            typename deduce_result_type<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass>::operand_type>        (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass>            (_A_1,_A_2));    }  #endif  template <class T_arg1,class T_arg2,class T_arg3>  typename deduce_result_type<T_arg1,T_arg2,T_arg3>::type  operator ()(T_arg1 _A_1,T_arg2 _A_2,T_arg3 _A_3) const    {      return lambda_action_convert<T_action, T_type>::template do_action<            typename deduce_result_type<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass>::operand_type>        (arg_.SIGC_WORKAROUND_OPERATOR_PARENTHESES<typename type_trait<T_arg1>::pass,typename type_trait<T_arg2>::pass,typename type_trait<T_arg3>::pass>            (_A_1,_A_2,_A_3));

⌨️ 快捷键说明

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