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