2 // bind/mem_fn_vw.hpp - void return helper wrappers
4 // Do not include this header directly
6 // Copyright (c) 2001 Peter Dimov and Multi Media Ltd.
8 // Distributed under the Boost Software License, Version 1.0. (See
9 // accompanying file LICENSE_1_0.txt or copy at
10 // http://www.boost.org/LICENSE_1_0.txt)
12 // See http://www.boost.org/libs/bind/mem_fn.html for documentation.
15 template<class R
, class T
> struct BOOST_MEM_FN_NAME(mf0
): public mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(mf0
)<R
, T
, R (BOOST_MEM_FN_CC
T::*) ()>
17 typedef R (BOOST_MEM_FN_CC
T::*F
) ();
18 explicit BOOST_MEM_FN_NAME(mf0
)(F f
): mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(mf0
)<R
, T
, F
>(f
) {}
21 template<class R
, class T
> struct BOOST_MEM_FN_NAME(cmf0
): public mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(cmf0
)<R
, T
, R (BOOST_MEM_FN_CC
T::*) () const>
23 typedef R (BOOST_MEM_FN_CC
T::*F
) () const;
24 explicit BOOST_MEM_FN_NAME(cmf0
)(F f
): mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(cmf0
)<R
, T
, F
>(f
) {}
28 template<class R
, class T
, class A1
> struct BOOST_MEM_FN_NAME(mf1
): public mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(mf1
)<R
, T
, A1
, R (BOOST_MEM_FN_CC
T::*) (A1
)>
30 typedef R (BOOST_MEM_FN_CC
T::*F
) (A1
);
31 explicit BOOST_MEM_FN_NAME(mf1
)(F f
): mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(mf1
)<R
, T
, A1
, F
>(f
) {}
34 template<class R
, class T
, class A1
> struct BOOST_MEM_FN_NAME(cmf1
): public mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(cmf1
)<R
, T
, A1
, R (BOOST_MEM_FN_CC
T::*) (A1
) const>
36 typedef R (BOOST_MEM_FN_CC
T::*F
) (A1
) const;
37 explicit BOOST_MEM_FN_NAME(cmf1
)(F f
): mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(cmf1
)<R
, T
, A1
, F
>(f
) {}
41 template<class R
, class T
, class A1
, class A2
> struct BOOST_MEM_FN_NAME(mf2
): public mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(mf2
)<R
, T
, A1
, A2
, R (BOOST_MEM_FN_CC
T::*) (A1
, A2
)>
43 typedef R (BOOST_MEM_FN_CC
T::*F
) (A1
, A2
);
44 explicit BOOST_MEM_FN_NAME(mf2
)(F f
): mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(mf2
)<R
, T
, A1
, A2
, F
>(f
) {}
47 template<class R
, class T
, class A1
, class A2
> struct BOOST_MEM_FN_NAME(cmf2
): public mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(cmf2
)<R
, T
, A1
, A2
, R (BOOST_MEM_FN_CC
T::*) (A1
, A2
) const>
49 typedef R (BOOST_MEM_FN_CC
T::*F
) (A1
, A2
) const;
50 explicit BOOST_MEM_FN_NAME(cmf2
)(F f
): mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(cmf2
)<R
, T
, A1
, A2
, F
>(f
) {}
54 template<class R
, class T
, class A1
, class A2
, class A3
> struct BOOST_MEM_FN_NAME(mf3
): public mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(mf3
)<R
, T
, A1
, A2
, A3
, R (BOOST_MEM_FN_CC
T::*) (A1
, A2
, A3
)>
56 typedef R (BOOST_MEM_FN_CC
T::*F
) (A1
, A2
, A3
);
57 explicit BOOST_MEM_FN_NAME(mf3
)(F f
): mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(mf3
)<R
, T
, A1
, A2
, A3
, F
>(f
) {}
60 template<class R
, class T
, class A1
, class A2
, class A3
> struct BOOST_MEM_FN_NAME(cmf3
): public mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(cmf3
)<R
, T
, A1
, A2
, A3
, R (BOOST_MEM_FN_CC
T::*) (A1
, A2
, A3
) const>
62 typedef R (BOOST_MEM_FN_CC
T::*F
) (A1
, A2
, A3
) const;
63 explicit BOOST_MEM_FN_NAME(cmf3
)(F f
): mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(cmf3
)<R
, T
, A1
, A2
, A3
, F
>(f
) {}
67 template<class R
, class T
, class A1
, class A2
, class A3
, class A4
> struct BOOST_MEM_FN_NAME(mf4
): public mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(mf4
)<R
, T
, A1
, A2
, A3
, A4
, R (BOOST_MEM_FN_CC
T::*) (A1
, A2
, A3
, A4
)>
69 typedef R (BOOST_MEM_FN_CC
T::*F
) (A1
, A2
, A3
, A4
);
70 explicit BOOST_MEM_FN_NAME(mf4
)(F f
): mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(mf4
)<R
, T
, A1
, A2
, A3
, A4
, F
>(f
) {}
73 template<class R
, class T
, class A1
, class A2
, class A3
, class A4
> struct BOOST_MEM_FN_NAME(cmf4
): public mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(cmf4
)<R
, T
, A1
, A2
, A3
, A4
, R (BOOST_MEM_FN_CC
T::*) (A1
, A2
, A3
, A4
) const>
75 typedef R (BOOST_MEM_FN_CC
T::*F
) (A1
, A2
, A3
, A4
) const;
76 explicit BOOST_MEM_FN_NAME(cmf4
)(F f
): mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(cmf4
)<R
, T
, A1
, A2
, A3
, A4
, F
>(f
) {}
80 template<class R
, class T
, class A1
, class A2
, class A3
, class A4
, class A5
> struct BOOST_MEM_FN_NAME(mf5
): public mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(mf5
)<R
, T
, A1
, A2
, A3
, A4
, A5
, R (BOOST_MEM_FN_CC
T::*) (A1
, A2
, A3
, A4
, A5
)>
82 typedef R (BOOST_MEM_FN_CC
T::*F
) (A1
, A2
, A3
, A4
, A5
);
83 explicit BOOST_MEM_FN_NAME(mf5
)(F f
): mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(mf5
)<R
, T
, A1
, A2
, A3
, A4
, A5
, F
>(f
) {}
86 template<class R
, class T
, class A1
, class A2
, class A3
, class A4
, class A5
> struct BOOST_MEM_FN_NAME(cmf5
): public mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(cmf5
)<R
, T
, A1
, A2
, A3
, A4
, A5
, R (BOOST_MEM_FN_CC
T::*) (A1
, A2
, A3
, A4
, A5
) const>
88 typedef R (BOOST_MEM_FN_CC
T::*F
) (A1
, A2
, A3
, A4
, A5
) const;
89 explicit BOOST_MEM_FN_NAME(cmf5
)(F f
): mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(cmf5
)<R
, T
, A1
, A2
, A3
, A4
, A5
, F
>(f
) {}
93 template<class R
, class T
, class A1
, class A2
, class A3
, class A4
, class A5
, class A6
> struct BOOST_MEM_FN_NAME(mf6
): public mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(mf6
)<R
, T
, A1
, A2
, A3
, A4
, A5
, A6
, R (BOOST_MEM_FN_CC
T::*) (A1
, A2
, A3
, A4
, A5
, A6
)>
95 typedef R (BOOST_MEM_FN_CC
T::*F
) (A1
, A2
, A3
, A4
, A5
, A6
);
96 explicit BOOST_MEM_FN_NAME(mf6
)(F f
): mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(mf6
)<R
, T
, A1
, A2
, A3
, A4
, A5
, A6
, F
>(f
) {}
99 template<class R
, class T
, class A1
, class A2
, class A3
, class A4
, class A5
, class A6
> struct BOOST_MEM_FN_NAME(cmf6
): public mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(cmf6
)<R
, T
, A1
, A2
, A3
, A4
, A5
, A6
, R (BOOST_MEM_FN_CC
T::*) (A1
, A2
, A3
, A4
, A5
, A6
) const>
101 typedef R (BOOST_MEM_FN_CC
T::*F
) (A1
, A2
, A3
, A4
, A5
, A6
) const;
102 explicit BOOST_MEM_FN_NAME(cmf6
)(F f
): mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(cmf6
)<R
, T
, A1
, A2
, A3
, A4
, A5
, A6
, F
>(f
) {}
106 template<class R
, class T
, class A1
, class A2
, class A3
, class A4
, class A5
, class A6
, class A7
> struct BOOST_MEM_FN_NAME(mf7
): public mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(mf7
)<R
, T
, A1
, A2
, A3
, A4
, A5
, A6
, A7
, R (BOOST_MEM_FN_CC
T::*) (A1
, A2
, A3
, A4
, A5
, A6
, A7
)>
108 typedef R (BOOST_MEM_FN_CC
T::*F
) (A1
, A2
, A3
, A4
, A5
, A6
, A7
);
109 explicit BOOST_MEM_FN_NAME(mf7
)(F f
): mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(mf7
)<R
, T
, A1
, A2
, A3
, A4
, A5
, A6
, A7
, F
>(f
) {}
112 template<class R
, class T
, class A1
, class A2
, class A3
, class A4
, class A5
, class A6
, class A7
> struct BOOST_MEM_FN_NAME(cmf7
): public mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(cmf7
)<R
, T
, A1
, A2
, A3
, A4
, A5
, A6
, A7
, R (BOOST_MEM_FN_CC
T::*) (A1
, A2
, A3
, A4
, A5
, A6
, A7
) const>
114 typedef R (BOOST_MEM_FN_CC
T::*F
) (A1
, A2
, A3
, A4
, A5
, A6
, A7
) const;
115 explicit BOOST_MEM_FN_NAME(cmf7
)(F f
): mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(cmf7
)<R
, T
, A1
, A2
, A3
, A4
, A5
, A6
, A7
, F
>(f
) {}
119 template<class R
, class T
, class A1
, class A2
, class A3
, class A4
, class A5
, class A6
, class A7
, class A8
> struct BOOST_MEM_FN_NAME(mf8
): public mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(mf8
)<R
, T
, A1
, A2
, A3
, A4
, A5
, A6
, A7
, A8
, R (BOOST_MEM_FN_CC
T::*) (A1
, A2
, A3
, A4
, A5
, A6
, A7
, A8
)>
121 typedef R (BOOST_MEM_FN_CC
T::*F
) (A1
, A2
, A3
, A4
, A5
, A6
, A7
, A8
);
122 explicit BOOST_MEM_FN_NAME(mf8
)(F f
): mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(mf8
)<R
, T
, A1
, A2
, A3
, A4
, A5
, A6
, A7
, A8
, F
>(f
) {}
125 template<class R
, class T
, class A1
, class A2
, class A3
, class A4
, class A5
, class A6
, class A7
, class A8
> struct BOOST_MEM_FN_NAME(cmf8
): public mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(cmf8
)<R
, T
, A1
, A2
, A3
, A4
, A5
, A6
, A7
, A8
, R (BOOST_MEM_FN_CC
T::*) (A1
, A2
, A3
, A4
, A5
, A6
, A7
, A8
) const>
127 typedef R (BOOST_MEM_FN_CC
T::*F
) (A1
, A2
, A3
, A4
, A5
, A6
, A7
, A8
) const;
128 explicit BOOST_MEM_FN_NAME(cmf8
)(F f
): mf
<R
>::BOOST_NESTED_TEMPLATE
BOOST_MEM_FN_NAME2(cmf8
)<R
, T
, A1
, A2
, A3
, A4
, A5
, A6
, A7
, A8
, F
>(f
) {}