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

typedef
        typename _traits::result_type(classtype::*MFunctionP_Type)
        (
        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<7,classtype,funtype>
{
    typedef function_traits<funtype> _traits;

typedef
        typename _traits::result_type(classtype::*MFunctionP_Type)
        (
        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<8,classtype,funtype>
{
    typedef function_traits<funtype> _traits;

typedef
        typename _traits::result_type(classtype::*MFunctionP_Type)
        (
        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<9,classtype,funtype>
{
    typedef function_traits<funtype> _traits;

typedef
        typename _traits::result_type(classtype::*MFunctionP_Type)
        (
        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<10,classtype,funtype>
{
    typedef function_traits<funtype> _traits;

typedef
        typename _traits::result_type(classtype::*MFunctionP_Type)
        (
        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<11,classtype,funtype>
{
    typedef function_traits<funtype> _traits;

typedef
        typename _traits::result_type(classtype::*MFunctionP_Type)
        (
        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<12,classtype,funtype>
{
    typedef function_traits<funtype> _traits;

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

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