1 #ifndef BOOST_BIND_MAKE_ADAPTABLE_HPP_INCLUDED
\r
2 #define BOOST_BIND_MAKE_ADAPTABLE_HPP_INCLUDED
\r
5 // make_adaptable.hpp
\r
7 // Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
\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
20 template<class R, class F> class af0
\r
24 typedef R result_type;
\r
26 explicit af0(F f): f_(f)
\r
30 result_type operator()()
\r
35 result_type operator()() const
\r
45 template<class R, class A1, class F> class af1
\r
49 typedef R result_type;
\r
50 typedef A1 argument_type;
\r
51 typedef A1 arg1_type;
\r
53 explicit af1(F f): f_(f)
\r
57 result_type operator()(A1 a1)
\r
62 result_type operator()(A1 a1) const
\r
72 template<class R, class A1, class A2, class F> class af2
\r
76 typedef R result_type;
\r
77 typedef A1 first_argument_type;
\r
78 typedef A2 second_argument_type;
\r
79 typedef A1 arg1_type;
\r
80 typedef A2 arg2_type;
\r
82 explicit af2(F f): f_(f)
\r
86 result_type operator()(A1 a1, A2 a2)
\r
91 result_type operator()(A1 a1, A2 a2) const
\r
101 template<class R, class A1, class A2, class A3, class F> class af3
\r
105 typedef R result_type;
\r
106 typedef A1 arg1_type;
\r
107 typedef A2 arg2_type;
\r
108 typedef A3 arg3_type;
\r
110 explicit af3(F f): f_(f)
\r
114 result_type operator()(A1 a1, A2 a2, A3 a3)
\r
116 return f_(a1, a2, a3);
\r
119 result_type operator()(A1 a1, A2 a2, A3 a3) const
\r
121 return f_(a1, a2, a3);
\r
129 template<class R, class A1, class A2, class A3, class A4, class F> class af4
\r
133 typedef R result_type;
\r
134 typedef A1 arg1_type;
\r
135 typedef A2 arg2_type;
\r
136 typedef A3 arg3_type;
\r
137 typedef A4 arg4_type;
\r
139 explicit af4(F f): f_(f)
\r
143 result_type operator()(A1 a1, A2 a2, A3 a3, A4 a4)
\r
145 return f_(a1, a2, a3, a4);
\r
148 result_type operator()(A1 a1, A2 a2, A3 a3, A4 a4) const
\r
150 return f_(a1, a2, a3, a4);
\r
160 template<class R, class F> _bi::af0<R, F> make_adaptable(F f)
\r
162 return _bi::af0<R, F>(f);
\r
165 template<class R, class A1, class F> _bi::af1<R, A1, F> make_adaptable(F f)
\r
167 return _bi::af1<R, A1, F>(f);
\r
170 template<class R, class A1, class A2, class F> _bi::af2<R, A1, A2, F> make_adaptable(F f)
\r
172 return _bi::af2<R, A1, A2, F>(f);
\r
175 template<class R, class A1, class A2, class A3, class F> _bi::af3<R, A1, A2, A3, F> make_adaptable(F f)
\r
177 return _bi::af3<R, A1, A2, A3, F>(f);
\r
180 template<class R, class A1, class A2, class A3, class A4, class F> _bi::af4<R, A1, A2, A3, A4, F> make_adaptable(F f)
\r
182 return _bi::af4<R, A1, A2, A3, A4, F>(f);
\r
185 } // namespace boost
\r
187 #endif // #ifndef BOOST_BIND_MAKE_ADAPTABLE_HPP_INCLUDED
\r