]> git.lyx.org Git - lyx.git/blob - 3rdparty/boost/boost/function/function_fwd.hpp
Update boost to version 1.62.
[lyx.git] / 3rdparty / boost / boost / function / function_fwd.hpp
1 // Boost.Function library
2 //  Copyright (C) Douglas Gregor 2008
3 //
4 //  Use, modification and distribution is subject to the Boost
5 //  Software License, Version 1.0.  (See accompanying file
6 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 //
8 // For more information, see http://www.boost.org
9 #ifndef BOOST_FUNCTION_FWD_HPP
10 #define BOOST_FUNCTION_FWD_HPP
11 #include <boost/config.hpp>
12
13 #if defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 730 && !defined(BOOST_STRICT_CONFIG)
14 // Work around a compiler bug.
15 // boost::python::objects::function has to be seen by the compiler before the
16 // boost::function class template.
17 namespace boost { namespace python { namespace objects {
18   class function;
19 }}}
20 #endif
21
22 #if defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG)                         \
23  || !(defined(BOOST_STRICT_CONFIG) || !defined(__SUNPRO_CC) || __SUNPRO_CC > 0x540)
24 #  define BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX
25 #endif
26
27 namespace boost {
28   class bad_function_call;
29
30 #if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)
31   // Preferred syntax
32   template<typename Signature> class function;
33
34   template<typename Signature>
35   inline void swap(function<Signature>& f1, function<Signature>& f2)
36   {
37     f1.swap(f2);
38   }
39 #endif // have partial specialization
40
41   // Portable syntax
42   template<typename R> class function0;
43   template<typename R, typename T1> class function1;
44   template<typename R, typename T1, typename T2> class function2;
45   template<typename R, typename T1, typename T2, typename T3> class function3;
46   template<typename R, typename T1, typename T2, typename T3, typename T4> 
47     class function4;
48   template<typename R, typename T1, typename T2, typename T3, typename T4,
49            typename T5> 
50     class function5;
51   template<typename R, typename T1, typename T2, typename T3, typename T4,
52            typename T5, typename T6> 
53     class function6;
54   template<typename R, typename T1, typename T2, typename T3, typename T4,
55            typename T5, typename T6, typename T7> 
56     class function7;
57   template<typename R, typename T1, typename T2, typename T3, typename T4,
58            typename T5, typename T6, typename T7, typename T8> 
59     class function8;
60   template<typename R, typename T1, typename T2, typename T3, typename T4,
61            typename T5, typename T6, typename T7, typename T8, typename T9> 
62     class function9;
63   template<typename R, typename T1, typename T2, typename T3, typename T4,
64            typename T5, typename T6, typename T7, typename T8, typename T9,
65            typename T10> 
66     class function10;
67 }
68
69 #endif