1 // Boost.Function library
2 
3 //  Copyright Douglas Gregor 2001-2003. Use, modification and
4 //  distribution is subject to the Boost Software License, Version
5 //  1.0. (See accompanying file LICENSE_1_0.txt or copy at
6 //  http://www.boost.org/LICENSE_1_0.txt)
7 
8 // For more information, see http://www.boost.org/libs/function
9 
10 // William Kempf, Jesse Jones and Karl Nelson were all very helpful in the
11 // design of this library.
12 
13 #ifndef BOOST_FUNCTION_MAX_ARGS
14 #  define BOOST_FUNCTION_MAX_ARGS 10
15 #endif // BOOST_FUNCTION_MAX_ARGS
16 
17 #if !defined(BOOST_FUNCTION_MAX_ARGS_DEFINED) || (BOOST_FUNCTION_MAX_ARGS_DEFINED != BOOST_FUNCTION_MAX_ARGS)
18 
19 #if !defined(BOOST_FUNCTION_MAX_ARGS_DEFINED)
20 #define BOOST_FUNCTION_MAX_ARGS_DEFINED 0
21 #endif
22 
23 #include <functional> // unary_function, binary_function
24 
25 #include <boost/preprocessor/iterate.hpp>
26 #include <boost/config/workaround.hpp>
27 
28 // Include the prologue here so that the use of file-level iteration
29 // in anything that may be included by function_template.hpp doesn't break
30 #include <boost/function/detail/prologue.hpp>
31 
32 // Older Visual Age C++ version do not handle the file iteration well
33 #if BOOST_WORKAROUND(__IBMCPP__, >= 500) && BOOST_WORKAROUND(__IBMCPP__, < 800)
34 #  if BOOST_FUNCTION_MAX_ARGS >= 0
35 #    include <boost/function/function0.hpp>
36 #  endif
37 #  if BOOST_FUNCTION_MAX_ARGS >= 1
38 #    include <boost/function/function1.hpp>
39 #  endif
40 #  if BOOST_FUNCTION_MAX_ARGS >= 2
41 #    include <boost/function/function2.hpp>
42 #  endif
43 #  if BOOST_FUNCTION_MAX_ARGS >= 3
44 #    include <boost/function/function3.hpp>
45 #  endif
46 #  if BOOST_FUNCTION_MAX_ARGS >= 4
47 #    include <boost/function/function4.hpp>
48 #  endif
49 #  if BOOST_FUNCTION_MAX_ARGS >= 5
50 #    include <boost/function/function5.hpp>
51 #  endif
52 #  if BOOST_FUNCTION_MAX_ARGS >= 6
53 #    include <boost/function/function6.hpp>
54 #  endif
55 #  if BOOST_FUNCTION_MAX_ARGS >= 7
56 #    include <boost/function/function7.hpp>
57 #  endif
58 #  if BOOST_FUNCTION_MAX_ARGS >= 8
59 #    include <boost/function/function8.hpp>
60 #  endif
61 #  if BOOST_FUNCTION_MAX_ARGS >= 9
62 #    include <boost/function/function9.hpp>
63 #  endif
64 #  if BOOST_FUNCTION_MAX_ARGS >= 10
65 #    include <boost/function/function10.hpp>
66 #  endif
67 #else
68 // What is the '3' for?
69 #  define BOOST_PP_ITERATION_PARAMS_1 (3,(0,BOOST_FUNCTION_MAX_ARGS,<boost/function/detail/function_iterate.hpp>))
70 #  include BOOST_PP_ITERATE()
71 #  undef BOOST_PP_ITERATION_PARAMS_1
72 #endif
73 
74 #endif // !defined(BOOST_FUNCTION_MAX_ARGS_DEFINED) || (BOOST_FUNCTION_MAX_ARGS_DEFINED != BOOST_FUNCTION_MAX_ARGS)
75