]> AND Private Git Repository - canny.git/blob - stc/exp/ml_stc_linux_make_v1.0/include/boost/bind/apply.hpp
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
5ca4e1de562dc7902c402bbb78603116271c9f1d
[canny.git] / stc / exp / ml_stc_linux_make_v1.0 / include / boost / bind / apply.hpp
1 #ifndef BOOST_BIND_APPLY_HPP_INCLUDED\r
2 #define BOOST_BIND_APPLY_HPP_INCLUDED\r
3 \r
4 //\r
5 //  apply.hpp\r
6 //\r
7 //  Copyright (c) 2002, 2003 Peter Dimov and Multi Media Ltd.\r
8 //\r
9 // Distributed under the Boost Software License, Version 1.0. (See\r
10 // accompanying file LICENSE_1_0.txt or copy at\r
11 // http://www.boost.org/LICENSE_1_0.txt)\r
12 //\r
13 \r
14 namespace boost\r
15 {\r
16 \r
17 template<class R> struct apply\r
18 {\r
19     typedef R result_type;\r
20 \r
21     template<class F> result_type operator()(F & f) const\r
22     {\r
23         return f();\r
24     }\r
25 \r
26     template<class F, class A1> result_type operator()(F & f, A1 & a1) const\r
27     {\r
28         return f(a1);\r
29     }\r
30 \r
31     template<class F, class A1, class A2> result_type operator()(F & f, A1 & a1, A2 & a2) const\r
32     {\r
33         return f(a1, a2);\r
34     }\r
35 \r
36     template<class F, class A1, class A2, class A3> result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3) const\r
37     {\r
38         return f(a1, a2, a3);\r
39     }\r
40 \r
41     template<class F, class A1, class A2, class A3, class A4> result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4) const\r
42     {\r
43         return f(a1, a2, a3, a4);\r
44     }\r
45 \r
46     template<class F, class A1, class A2, class A3, class A4, class A5> result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5) const\r
47     {\r
48         return f(a1, a2, a3, a4, a5);\r
49     }\r
50 \r
51     template<class F, class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6) const\r
52     {\r
53         return f(a1, a2, a3, a4, a5, a6);\r
54     }\r
55 \r
56     template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7) const\r
57     {\r
58         return f(a1, a2, a3, a4, a5, a6, a7);\r
59     }\r
60 \r
61     template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8) const\r
62     {\r
63         return f(a1, a2, a3, a4, a5, a6, a7, a8);\r
64     }\r
65 \r
66     template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9) const\r
67     {\r
68         return f(a1, a2, a3, a4, a5, a6, a7, a8, a9);\r
69     }\r
70 };\r
71 \r
72 } // namespace boost\r
73 \r
74 #endif // #ifndef BOOST_BIND_APPLY_HPP_INCLUDED\r