Chris@16: // Boost.Function library Chris@16: // Copyright (C) Douglas Gregor 2008 Chris@16: // Chris@16: // Use, modification and distribution is subject to the Boost Chris@16: // Software License, Version 1.0. (See accompanying file Chris@16: // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: // Chris@16: // For more information, see http://www.boost.org Chris@16: #ifndef BOOST_FUNCTION_FWD_HPP Chris@16: #define BOOST_FUNCTION_FWD_HPP Chris@16: #include Chris@16: Chris@16: #if defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 730 && !defined(BOOST_STRICT_CONFIG) Chris@16: // Work around a compiler bug. Chris@16: // boost::python::objects::function has to be seen by the compiler before the Chris@16: // boost::function class template. Chris@16: namespace boost { namespace python { namespace objects { Chris@16: class function; Chris@16: }}} Chris@16: #endif Chris@16: Chris@101: #if defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG) \ Chris@16: || !(defined(BOOST_STRICT_CONFIG) || !defined(__SUNPRO_CC) || __SUNPRO_CC > 0x540) Chris@16: # define BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX Chris@16: #endif Chris@16: Chris@16: namespace boost { Chris@16: class bad_function_call; Chris@16: Chris@16: #if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX) Chris@16: // Preferred syntax Chris@16: template class function; Chris@16: Chris@16: template Chris@16: inline void swap(function& f1, function& f2) Chris@16: { Chris@16: f1.swap(f2); Chris@16: } Chris@16: #endif // have partial specialization Chris@16: Chris@16: // Portable syntax Chris@16: template class function0; Chris@16: template class function1; Chris@16: template class function2; Chris@16: template class function3; Chris@16: template Chris@16: class function4; Chris@16: template Chris@16: class function5; Chris@16: template Chris@16: class function6; Chris@16: template Chris@16: class function7; Chris@16: template Chris@16: class function8; Chris@16: template Chris@16: class function9; Chris@16: template Chris@16: class function10; Chris@16: } Chris@16: Chris@16: #endif