C++类型萃取编写技巧(18)

typedef
        typename _traits::result_type(classtype::*MFunctionP_Type)
        (
        typename _traits::arg17,
        typename _traits::arg16,
        typename _traits::arg15,
        typename _traits::arg14,
        typename _traits::arg13,
        typename _traits::arg12,
        typename _traits::arg11,
        typename _traits::arg10,
        typename _traits::arg9,
        typename _traits::arg8,
        typename _traits::arg7,
        typename _traits::arg6,
        typename _traits::arg5,
        typename _traits::arg4,
        typename _traits::arg3,
        typename _traits::arg2,
        typename _traits::arg1);
};

template<typename classtype,typename funtype>
struct fun_to_mem_converter_helper<18,classtype,funtype>
{
    typedef function_traits<funtype> _traits;

typedef
        typename _traits::result_type(classtype::*MFunctionP_Type)
        (
        typename _traits::arg18,
        typename _traits::arg17,
        typename _traits::arg16,
        typename _traits::arg15,
        typename _traits::arg14,
        typename _traits::arg13,
        typename _traits::arg12,
        typename _traits::arg11,
        typename _traits::arg10,
        typename _traits::arg9,
        typename _traits::arg8,
        typename _traits::arg7,
        typename _traits::arg6,
        typename _traits::arg5,
        typename _traits::arg4,
        typename _traits::arg3,
        typename _traits::arg2,
        typename _traits::arg1);
};

template<typename classtype,typename funtype>
struct fun_to_mem_converter_helper<19,classtype,funtype>
{
    typedef function_traits<funtype> _traits;

typedef
        typename _traits::result_type(classtype::*MFunctionP_Type)
        (
        typename _traits::arg19,
        typename _traits::arg18,
        typename _traits::arg17,
        typename _traits::arg16,
        typename _traits::arg15,
        typename _traits::arg14,
        typename _traits::arg13,
        typename _traits::arg12,
        typename _traits::arg11,
        typename _traits::arg10,
        typename _traits::arg9,
        typename _traits::arg8,
        typename _traits::arg7,
        typename _traits::arg6,
        typename _traits::arg5,
        typename _traits::arg4,
        typename _traits::arg3,
        typename _traits::arg2,
        typename _traits::arg1);
};

template<typename classtype,typename funtype>
struct fun_to_mem_converter_helper<20,classtype,funtype>
{
    typedef function_traits<funtype> _traits;

typedef
        typename _traits::result_type(classtype::*MFunctionP_Type)
        (
        typename _traits::arg20,
        typename _traits::arg19,
        typename _traits::arg18,
        typename _traits::arg17,
        typename _traits::arg16,
        typename _traits::arg15,
        typename _traits::arg14,
        typename _traits::arg13,
        typename _traits::arg12,
        typename _traits::arg11,
        typename _traits::arg10,
        typename _traits::arg9,
        typename _traits::arg8,
        typename _traits::arg7,
        typename _traits::arg6,
        typename _traits::arg5,
        typename _traits::arg4,
        typename _traits::arg3,
        typename _traits::arg2,
        typename _traits::arg1);
};

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/4b11dba9eca97ff5bf235e221cf6c9e1.html