williamr@2: // Boost.Function library
williamr@2: 
williamr@2: //  Copyright Douglas Gregor 2001-2003. Use, modification and
williamr@2: //  distribution is subject to the Boost Software License, Version
williamr@2: //  1.0. (See accompanying file LICENSE_1_0.txt or copy at
williamr@2: //  http://www.boost.org/LICENSE_1_0.txt)
williamr@2: 
williamr@2: // For more information, see http://www.boost.org/libs/function
williamr@2: 
williamr@2: // William Kempf, Jesse Jones and Karl Nelson were all very helpful in the
williamr@2: // design of this library.
williamr@2: 
williamr@2: #include <boost/preprocessor/iterate.hpp>
williamr@2: #include <boost/detail/workaround.hpp>
williamr@2: 
williamr@2: #ifndef BOOST_FUNCTION_MAX_ARGS
williamr@2: #  define BOOST_FUNCTION_MAX_ARGS 10
williamr@2: #endif // BOOST_FUNCTION_MAX_ARGS
williamr@2: 
williamr@2: // Include the prologue here so that the use of file-level iteration
williamr@2: // in anything that may be included by function_template.hpp doesn't break
williamr@2: #include <boost/function/detail/prologue.hpp>
williamr@2: 
williamr@2: // Visual Age C++ doesn't handle the file iteration well
williamr@2: #if BOOST_WORKAROUND(__IBMCPP__, >= 500)
williamr@2: #  if BOOST_FUNCTION_MAX_ARGS >= 0
williamr@2: #    include <boost/function/function0.hpp>
williamr@2: #  endif
williamr@2: #  if BOOST_FUNCTION_MAX_ARGS >= 1
williamr@2: #    include <boost/function/function1.hpp>
williamr@2: #  endif
williamr@2: #  if BOOST_FUNCTION_MAX_ARGS >= 2
williamr@2: #    include <boost/function/function2.hpp>
williamr@2: #  endif
williamr@2: #  if BOOST_FUNCTION_MAX_ARGS >= 3
williamr@2: #    include <boost/function/function3.hpp>
williamr@2: #  endif
williamr@2: #  if BOOST_FUNCTION_MAX_ARGS >= 4
williamr@2: #    include <boost/function/function4.hpp>
williamr@2: #  endif
williamr@2: #  if BOOST_FUNCTION_MAX_ARGS >= 5
williamr@2: #    include <boost/function/function5.hpp>
williamr@2: #  endif
williamr@2: #  if BOOST_FUNCTION_MAX_ARGS >= 6
williamr@2: #    include <boost/function/function6.hpp>
williamr@2: #  endif
williamr@2: #  if BOOST_FUNCTION_MAX_ARGS >= 7
williamr@2: #    include <boost/function/function7.hpp>
williamr@2: #  endif
williamr@2: #  if BOOST_FUNCTION_MAX_ARGS >= 8
williamr@2: #    include <boost/function/function8.hpp>
williamr@2: #  endif
williamr@2: #  if BOOST_FUNCTION_MAX_ARGS >= 9
williamr@2: #    include <boost/function/function9.hpp>
williamr@2: #  endif
williamr@2: #  if BOOST_FUNCTION_MAX_ARGS >= 10
williamr@2: #    include <boost/function/function10.hpp>
williamr@2: #  endif
williamr@2: #else
williamr@2: // What is the '3' for?
williamr@2: #  define BOOST_PP_ITERATION_PARAMS_1 (3,(0,BOOST_FUNCTION_MAX_ARGS,<boost/function/detail/function_iterate.hpp>))
williamr@2: #  include BOOST_PP_ITERATE()
williamr@2: #  undef BOOST_PP_ITERATION_PARAMS_1
williamr@2: #endif