diff --git a/include/boost/function/function0.hpp b/include/boost/function/function0.hpp index 8f913d5..8f37ae6 100644 --- a/include/boost/function/function0.hpp +++ b/include/boost/function/function0.hpp @@ -23,9 +23,11 @@ #define BOOST_FUNCTION_ARGS #define BOOST_FUNCTION_NOT_0_PARMS #define BOOST_FUNCTION_NOT_0_ARGS +#define BOOST_FUNCTION_ARG_TYPES #include +#undef BOOST_FUNCTION_ARG_TYPES #undef BOOST_FUNCTION_NOT_0_ARGS #undef BOOST_FUNCTION_NOT_0_PARMS #undef BOOST_FUNCTION_ARGS diff --git a/include/boost/function/function1.hpp b/include/boost/function/function1.hpp index 7d41f1d..7cf9b23 100644 --- a/include/boost/function/function1.hpp +++ b/include/boost/function/function1.hpp @@ -23,9 +23,11 @@ #define BOOST_FUNCTION_ARGS a0 #define BOOST_FUNCTION_NOT_0_PARMS #define BOOST_FUNCTION_NOT_0_ARGS +#define BOOST_FUNCTION_ARG_TYPES typedef T0 arg1_type; #include +#undef BOOST_FUNCTION_ARG_TYPES #undef BOOST_FUNCTION_NOT_0_ARGS #undef BOOST_FUNCTION_NOT_0_PARMS #undef BOOST_FUNCTION_ARGS diff --git a/include/boost/function/function10.hpp b/include/boost/function/function10.hpp index 53fe784..afdb5b1 100644 --- a/include/boost/function/function10.hpp +++ b/include/boost/function/function10.hpp @@ -23,9 +23,11 @@ #define BOOST_FUNCTION_ARGS a0, a1, a2, a3, a4, a5, a6, a7, a8, a9 #define BOOST_FUNCTION_NOT_0_PARMS T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7, T8 a8, T9 a9 #define BOOST_FUNCTION_NOT_0_ARGS a1, a2, a3, a4, a5, a6, a7, a8, a9 +#define BOOST_FUNCTION_ARG_TYPES typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; typedef T3 arg4_type; typedef T4 arg5_type; typedef T5 arg6_type; typedef T6 arg7_type; typedef T7 arg8_type; typedef T8 arg9_type; typedef T9 arg10_type; #include +#undef BOOST_FUNCTION_ARG_TYPES #undef BOOST_FUNCTION_NOT_0_ARGS #undef BOOST_FUNCTION_NOT_0_PARMS #undef BOOST_FUNCTION_ARGS diff --git a/include/boost/function/function2.hpp b/include/boost/function/function2.hpp index 6e41629..31a5397 100644 --- a/include/boost/function/function2.hpp +++ b/include/boost/function/function2.hpp @@ -23,9 +23,11 @@ #define BOOST_FUNCTION_ARGS a0, a1 #define BOOST_FUNCTION_NOT_0_PARMS T1 a1 #define BOOST_FUNCTION_NOT_0_ARGS a1 +#define BOOST_FUNCTION_ARG_TYPES typedef T0 arg1_type; typedef T1 arg2_type; #include +#undef BOOST_FUNCTION_ARG_TYPES #undef BOOST_FUNCTION_NOT_0_ARGS #undef BOOST_FUNCTION_NOT_0_PARMS #undef BOOST_FUNCTION_ARGS diff --git a/include/boost/function/function3.hpp b/include/boost/function/function3.hpp index 7659374..38c64cb 100644 --- a/include/boost/function/function3.hpp +++ b/include/boost/function/function3.hpp @@ -23,9 +23,10 @@ #define BOOST_FUNCTION_ARGS a0, a1, a2 #define BOOST_FUNCTION_NOT_0_PARMS T1 a1, T2 a2 #define BOOST_FUNCTION_NOT_0_ARGS a1, a2 +#define BOOST_FUNCTION_ARG_TYPES typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; #include - +#undef BOOST_FUNCTION_ARG_TYPES #undef BOOST_FUNCTION_NOT_0_ARGS #undef BOOST_FUNCTION_NOT_0_PARMS #undef BOOST_FUNCTION_ARGS diff --git a/include/boost/function/function4.hpp b/include/boost/function/function4.hpp index a266ec3..7049964 100644 --- a/include/boost/function/function4.hpp +++ b/include/boost/function/function4.hpp @@ -23,9 +23,11 @@ #define BOOST_FUNCTION_ARGS a0, a1, a2, a3 #define BOOST_FUNCTION_NOT_0_PARMS T1 a1, T2 a2, T3 a3 #define BOOST_FUNCTION_NOT_0_ARGS a1, a2, a3 +#define BOOST_FUNCTION_ARG_TYPES typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; typedef T3 arg4_type; #include +#undef BOOST_FUNCTION_ARG_TYPES #undef BOOST_FUNCTION_NOT_0_ARGS #undef BOOST_FUNCTION_NOT_0_PARMS #undef BOOST_FUNCTION_ARGS diff --git a/include/boost/function/function5.hpp b/include/boost/function/function5.hpp index abc6f70..b133426 100644 --- a/include/boost/function/function5.hpp +++ b/include/boost/function/function5.hpp @@ -23,9 +23,11 @@ #define BOOST_FUNCTION_ARGS a0, a1, a2, a3, a4 #define BOOST_FUNCTION_NOT_0_PARMS T1 a1, T2 a2, T3 a3, T4 a4 #define BOOST_FUNCTION_NOT_0_ARGS a1, a2, a3, a4 +#define BOOST_FUNCTION_ARG_TYPES typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; typedef T3 arg4_type; typedef T4 arg5_type; #include +#undef BOOST_FUNCTION_ARG_TYPES #undef BOOST_FUNCTION_NOT_0_ARGS #undef BOOST_FUNCTION_NOT_0_PARMS #undef BOOST_FUNCTION_ARGS diff --git a/include/boost/function/function6.hpp b/include/boost/function/function6.hpp index 422d213..4456334 100644 --- a/include/boost/function/function6.hpp +++ b/include/boost/function/function6.hpp @@ -23,9 +23,11 @@ #define BOOST_FUNCTION_ARGS a0, a1, a2, a3, a4, a5 #define BOOST_FUNCTION_NOT_0_PARMS T1 a1, T2 a2, T3 a3, T4 a4, T5 a5 #define BOOST_FUNCTION_NOT_0_ARGS a1, a2, a3, a4, a5 +#define BOOST_FUNCTION_ARG_TYPES typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; typedef T3 arg4_type; typedef T4 arg5_type; typedef T5 arg6_type; #include +#undef BOOST_FUNCTION_ARG_TYPES #undef BOOST_FUNCTION_NOT_0_ARGS #undef BOOST_FUNCTION_NOT_0_PARMS #undef BOOST_FUNCTION_ARGS diff --git a/include/boost/function/function7.hpp b/include/boost/function/function7.hpp index f8c4d09..46544fd 100644 --- a/include/boost/function/function7.hpp +++ b/include/boost/function/function7.hpp @@ -23,9 +23,11 @@ #define BOOST_FUNCTION_ARGS a0, a1, a2, a3, a4, a5, a6 #define BOOST_FUNCTION_NOT_0_PARMS T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6 #define BOOST_FUNCTION_NOT_0_ARGS a1, a2, a3, a4, a5, a6 +#define BOOST_FUNCTION_ARG_TYPES typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; typedef T3 arg4_type; typedef T4 arg5_type; typedef T5 arg6_type; typedef T6 arg7_type; #include +#undef BOOST_FUNCTION_ARG_TYPES #undef BOOST_FUNCTION_NOT_0_ARGS #undef BOOST_FUNCTION_NOT_0_PARMS #undef BOOST_FUNCTION_ARGS diff --git a/include/boost/function/function8.hpp b/include/boost/function/function8.hpp index 1ea7dea..ca08983 100644 --- a/include/boost/function/function8.hpp +++ b/include/boost/function/function8.hpp @@ -23,9 +23,11 @@ #define BOOST_FUNCTION_ARGS a0, a1, a2, a3, a4, a5, a6, a7 #define BOOST_FUNCTION_NOT_0_PARMS T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7 #define BOOST_FUNCTION_NOT_0_ARGS a1, a2, a3, a4, a5, a6, a7 +#define BOOST_FUNCTION_ARG_TYPES typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; typedef T3 arg4_type; typedef T4 arg5_type; typedef T5 arg6_type; typedef T6 arg7_type; typedef T7 arg8_type; #include +#undef BOOST_FUNCTION_ARG_TYPES #undef BOOST_FUNCTION_NOT_0_ARGS #undef BOOST_FUNCTION_NOT_0_PARMS #undef BOOST_FUNCTION_ARGS diff --git a/include/boost/function/function9.hpp b/include/boost/function/function9.hpp index bf590b7..db42f66 100644 --- a/include/boost/function/function9.hpp +++ b/include/boost/function/function9.hpp @@ -23,9 +23,11 @@ #define BOOST_FUNCTION_ARGS a0, a1, a2, a3, a4, a5, a6, a7, a8 #define BOOST_FUNCTION_NOT_0_PARMS T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7, T8 a8 #define BOOST_FUNCTION_NOT_0_ARGS a1, a2, a3, a4, a5, a6, a7, a8 +#define BOOST_FUNCTION_ARG_TYPES typedef T0 arg1_type; typedef T1 arg2_type; typedef T2 arg3_type; typedef T3 arg4_type; typedef T4 arg5_type; typedef T5 arg6_type; typedef T6 arg7_type; typedef T7 arg8_type; typedef T8 arg9_type; #include +#undef BOOST_FUNCTION_ARG_TYPES #undef BOOST_FUNCTION_NOT_0_ARGS #undef BOOST_FUNCTION_NOT_0_PARMS #undef BOOST_FUNCTION_ARGS diff --git a/include/boost/function/function_template.hpp b/include/boost/function/function_template.hpp index c2ff200..7358bd8 100644 --- a/include/boost/function/function_template.hpp +++ b/include/boost/function/function_template.hpp @@ -253,6 +253,9 @@ namespace boost { typedef T1 second_argument_type; #endif + BOOST_STATIC_CONSTANT(int, arity = BOOST_FUNCTION_NUM_ARGS); + BOOST_FUNCTION_ARG_TYPES + #ifndef BOOST_NO_VOID_RETURNS typedef R result_type; #else