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