Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:30:55

0001 // Boost.Function library
0002 //  Copyright (C) Douglas Gregor 2008
0003 //
0004 //  Use, modification and distribution is subject to the Boost
0005 //  Software License, Version 1.0.  (See accompanying file
0006 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0007 //
0008 // For more information, see http://www.boost.org
0009 #ifndef BOOST_FUNCTION_FWD_HPP
0010 #define BOOST_FUNCTION_FWD_HPP
0011 #include <boost/config.hpp>
0012 
0013 #if defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 730 && !defined(BOOST_STRICT_CONFIG)
0014 // Work around a compiler bug.
0015 // boost::python::objects::function has to be seen by the compiler before the
0016 // boost::function class template.
0017 namespace boost { namespace python { namespace objects {
0018   class function;
0019 }}}
0020 #endif
0021 
0022 #if defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG)                         \
0023  || !(defined(BOOST_STRICT_CONFIG) || !defined(__SUNPRO_CC) || __SUNPRO_CC > 0x540)
0024 #  define BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX
0025 #endif
0026 
0027 namespace boost {
0028   class bad_function_call;
0029 
0030 #if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)
0031   // Preferred syntax
0032   template<typename Signature> class function;
0033 
0034   template<typename Signature>
0035   inline void swap(function<Signature>& f1, function<Signature>& f2)
0036   {
0037     f1.swap(f2);
0038   }
0039 #endif // have partial specialization
0040 
0041   // Portable syntax
0042   template<typename R> class function0;
0043   template<typename R, typename T1> class function1;
0044   template<typename R, typename T1, typename T2> class function2;
0045   template<typename R, typename T1, typename T2, typename T3> class function3;
0046   template<typename R, typename T1, typename T2, typename T3, typename T4> 
0047     class function4;
0048   template<typename R, typename T1, typename T2, typename T3, typename T4,
0049            typename T5> 
0050     class function5;
0051   template<typename R, typename T1, typename T2, typename T3, typename T4,
0052            typename T5, typename T6> 
0053     class function6;
0054   template<typename R, typename T1, typename T2, typename T3, typename T4,
0055            typename T5, typename T6, typename T7> 
0056     class function7;
0057   template<typename R, typename T1, typename T2, typename T3, typename T4,
0058            typename T5, typename T6, typename T7, typename T8> 
0059     class function8;
0060   template<typename R, typename T1, typename T2, typename T3, typename T4,
0061            typename T5, typename T6, typename T7, typename T8, typename T9> 
0062     class function9;
0063   template<typename R, typename T1, typename T2, typename T3, typename T4,
0064            typename T5, typename T6, typename T7, typename T8, typename T9,
0065            typename T10> 
0066     class function10;
0067 }
0068 
0069 #endif