Chris@16
|
1 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
2 // memfun_funop.hpp
|
Chris@16
|
3 // Contains overloads of memfun::operator().
|
Chris@16
|
4 //
|
Chris@16
|
5 // Copyright 2008 Eric Niebler. Distributed under the Boost
|
Chris@16
|
6 // Software License, Version 1.0. (See accompanying file
|
Chris@16
|
7 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
8 template<typename A0>
|
Chris@16
|
9 BOOST_FORCEINLINE
|
Chris@16
|
10 result_type operator()(A0 const &a0) const
|
Chris@16
|
11 {
|
Chris@16
|
12 BOOST_PROTO_USE_GET_POINTER();
|
Chris@16
|
13 return (BOOST_PROTO_GET_POINTER(V, obj) ->* pmf)(a0);
|
Chris@16
|
14 }
|
Chris@16
|
15 template<typename A0 , typename A1>
|
Chris@16
|
16 BOOST_FORCEINLINE
|
Chris@16
|
17 result_type operator()(A0 const &a0 , A1 const &a1) const
|
Chris@16
|
18 {
|
Chris@16
|
19 BOOST_PROTO_USE_GET_POINTER();
|
Chris@16
|
20 return (BOOST_PROTO_GET_POINTER(V, obj) ->* pmf)(a0 , a1);
|
Chris@16
|
21 }
|
Chris@16
|
22 template<typename A0 , typename A1 , typename A2>
|
Chris@16
|
23 BOOST_FORCEINLINE
|
Chris@16
|
24 result_type operator()(A0 const &a0 , A1 const &a1 , A2 const &a2) const
|
Chris@16
|
25 {
|
Chris@16
|
26 BOOST_PROTO_USE_GET_POINTER();
|
Chris@16
|
27 return (BOOST_PROTO_GET_POINTER(V, obj) ->* pmf)(a0 , a1 , a2);
|
Chris@16
|
28 }
|
Chris@16
|
29 template<typename A0 , typename A1 , typename A2 , typename A3>
|
Chris@16
|
30 BOOST_FORCEINLINE
|
Chris@16
|
31 result_type operator()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3) const
|
Chris@16
|
32 {
|
Chris@16
|
33 BOOST_PROTO_USE_GET_POINTER();
|
Chris@16
|
34 return (BOOST_PROTO_GET_POINTER(V, obj) ->* pmf)(a0 , a1 , a2 , a3);
|
Chris@16
|
35 }
|
Chris@16
|
36 template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
|
Chris@16
|
37 BOOST_FORCEINLINE
|
Chris@16
|
38 result_type operator()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4) const
|
Chris@16
|
39 {
|
Chris@16
|
40 BOOST_PROTO_USE_GET_POINTER();
|
Chris@16
|
41 return (BOOST_PROTO_GET_POINTER(V, obj) ->* pmf)(a0 , a1 , a2 , a3 , a4);
|
Chris@16
|
42 }
|
Chris@16
|
43 template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
|
Chris@16
|
44 BOOST_FORCEINLINE
|
Chris@16
|
45 result_type operator()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5) const
|
Chris@16
|
46 {
|
Chris@16
|
47 BOOST_PROTO_USE_GET_POINTER();
|
Chris@16
|
48 return (BOOST_PROTO_GET_POINTER(V, obj) ->* pmf)(a0 , a1 , a2 , a3 , a4 , a5);
|
Chris@16
|
49 }
|
Chris@16
|
50 template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
|
Chris@16
|
51 BOOST_FORCEINLINE
|
Chris@16
|
52 result_type operator()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6) const
|
Chris@16
|
53 {
|
Chris@16
|
54 BOOST_PROTO_USE_GET_POINTER();
|
Chris@16
|
55 return (BOOST_PROTO_GET_POINTER(V, obj) ->* pmf)(a0 , a1 , a2 , a3 , a4 , a5 , a6);
|
Chris@16
|
56 }
|
Chris@16
|
57 template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
|
Chris@16
|
58 BOOST_FORCEINLINE
|
Chris@16
|
59 result_type operator()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7) const
|
Chris@16
|
60 {
|
Chris@16
|
61 BOOST_PROTO_USE_GET_POINTER();
|
Chris@16
|
62 return (BOOST_PROTO_GET_POINTER(V, obj) ->* pmf)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
|
Chris@16
|
63 }
|
Chris@16
|
64 template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
|
Chris@16
|
65 BOOST_FORCEINLINE
|
Chris@16
|
66 result_type operator()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7 , A8 const &a8) const
|
Chris@16
|
67 {
|
Chris@16
|
68 BOOST_PROTO_USE_GET_POINTER();
|
Chris@16
|
69 return (BOOST_PROTO_GET_POINTER(V, obj) ->* pmf)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
|
Chris@16
|
70 }
|
Chris@16
|
71 template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
|
Chris@16
|
72 BOOST_FORCEINLINE
|
Chris@16
|
73 result_type operator()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7 , A8 const &a8 , A9 const &a9) const
|
Chris@16
|
74 {
|
Chris@16
|
75 BOOST_PROTO_USE_GET_POINTER();
|
Chris@16
|
76 return (BOOST_PROTO_GET_POINTER(V, obj) ->* pmf)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
|
Chris@16
|
77 }
|