Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 1 | // |
| 2 | // bind/mem_fn_vw.hpp - void return helper wrappers |
| 3 | // |
| 4 | // Do not include this header directly |
| 5 | // |
| 6 | // Copyright (c) 2001 Peter Dimov and Multi Media Ltd. |
| 7 | // |
| 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) |
| 11 | // |
| 12 | // See http://www.boost.org/libs/bind/mem_fn.html for documentation. |
| 13 | // |
| 14 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 15 | template<class R, class T> struct NDNBOOST_MEM_FN_NAME(mf0): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf0)<R, T, R (NDNBOOST_MEM_FN_CC T::*) ()> |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 16 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 17 | typedef R (NDNBOOST_MEM_FN_CC T::*F) (); |
| 18 | explicit NDNBOOST_MEM_FN_NAME(mf0)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf0)<R, T, F>(f) {} |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 19 | }; |
| 20 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 21 | template<class R, class T> struct NDNBOOST_MEM_FN_NAME(cmf0): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf0)<R, T, R (NDNBOOST_MEM_FN_CC T::*) () const> |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 22 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 23 | typedef R (NDNBOOST_MEM_FN_CC T::*F) () const; |
| 24 | explicit NDNBOOST_MEM_FN_NAME(cmf0)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf0)<R, T, F>(f) {} |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 25 | }; |
| 26 | |
| 27 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 28 | template<class R, class T, class A1> struct NDNBOOST_MEM_FN_NAME(mf1): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf1)<R, T, A1, R (NDNBOOST_MEM_FN_CC T::*) (A1)> |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 29 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 30 | typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1); |
| 31 | explicit NDNBOOST_MEM_FN_NAME(mf1)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf1)<R, T, A1, F>(f) {} |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 32 | }; |
| 33 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 34 | template<class R, class T, class A1> struct NDNBOOST_MEM_FN_NAME(cmf1): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf1)<R, T, A1, R (NDNBOOST_MEM_FN_CC T::*) (A1) const> |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 35 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 36 | typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1) const; |
| 37 | explicit NDNBOOST_MEM_FN_NAME(cmf1)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf1)<R, T, A1, F>(f) {} |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 38 | }; |
| 39 | |
| 40 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 41 | template<class R, class T, class A1, class A2> struct NDNBOOST_MEM_FN_NAME(mf2): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf2)<R, T, A1, A2, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2)> |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 42 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 43 | typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2); |
| 44 | explicit NDNBOOST_MEM_FN_NAME(mf2)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf2)<R, T, A1, A2, F>(f) {} |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 45 | }; |
| 46 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 47 | template<class R, class T, class A1, class A2> struct NDNBOOST_MEM_FN_NAME(cmf2): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf2)<R, T, A1, A2, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2) const> |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 48 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 49 | typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2) const; |
| 50 | explicit NDNBOOST_MEM_FN_NAME(cmf2)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf2)<R, T, A1, A2, F>(f) {} |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 51 | }; |
| 52 | |
| 53 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 54 | template<class R, class T, class A1, class A2, class A3> struct NDNBOOST_MEM_FN_NAME(mf3): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf3)<R, T, A1, A2, A3, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3)> |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 55 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 56 | typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3); |
| 57 | explicit NDNBOOST_MEM_FN_NAME(mf3)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf3)<R, T, A1, A2, A3, F>(f) {} |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 58 | }; |
| 59 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 60 | template<class R, class T, class A1, class A2, class A3> struct NDNBOOST_MEM_FN_NAME(cmf3): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf3)<R, T, A1, A2, A3, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3) const> |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 61 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 62 | typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3) const; |
| 63 | explicit NDNBOOST_MEM_FN_NAME(cmf3)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf3)<R, T, A1, A2, A3, F>(f) {} |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 64 | }; |
| 65 | |
| 66 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 67 | template<class R, class T, class A1, class A2, class A3, class A4> struct NDNBOOST_MEM_FN_NAME(mf4): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf4)<R, T, A1, A2, A3, A4, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3, A4)> |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 68 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 69 | typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4); |
| 70 | explicit NDNBOOST_MEM_FN_NAME(mf4)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf4)<R, T, A1, A2, A3, A4, F>(f) {} |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 71 | }; |
| 72 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 73 | template<class R, class T, class A1, class A2, class A3, class A4> struct NDNBOOST_MEM_FN_NAME(cmf4): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf4)<R, T, A1, A2, A3, A4, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3, A4) const> |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 74 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 75 | typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4) const; |
| 76 | explicit NDNBOOST_MEM_FN_NAME(cmf4)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf4)<R, T, A1, A2, A3, A4, F>(f) {} |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 77 | }; |
| 78 | |
| 79 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 80 | template<class R, class T, class A1, class A2, class A3, class A4, class A5> struct NDNBOOST_MEM_FN_NAME(mf5): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf5)<R, T, A1, A2, A3, A4, A5, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5)> |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 81 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 82 | typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5); |
| 83 | explicit NDNBOOST_MEM_FN_NAME(mf5)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf5)<R, T, A1, A2, A3, A4, A5, F>(f) {} |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 84 | }; |
| 85 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 86 | template<class R, class T, class A1, class A2, class A3, class A4, class A5> struct NDNBOOST_MEM_FN_NAME(cmf5): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf5)<R, T, A1, A2, A3, A4, A5, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5) const> |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 87 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 88 | typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5) const; |
| 89 | explicit NDNBOOST_MEM_FN_NAME(cmf5)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf5)<R, T, A1, A2, A3, A4, A5, F>(f) {} |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 90 | }; |
| 91 | |
| 92 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 93 | template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> struct NDNBOOST_MEM_FN_NAME(mf6): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf6)<R, T, A1, A2, A3, A4, A5, A6, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6)> |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 94 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 95 | typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6); |
| 96 | explicit NDNBOOST_MEM_FN_NAME(mf6)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf6)<R, T, A1, A2, A3, A4, A5, A6, F>(f) {} |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 97 | }; |
| 98 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 99 | template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> struct NDNBOOST_MEM_FN_NAME(cmf6): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf6)<R, T, A1, A2, A3, A4, A5, A6, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6) const> |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 100 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 101 | typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6) const; |
| 102 | explicit NDNBOOST_MEM_FN_NAME(cmf6)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf6)<R, T, A1, A2, A3, A4, A5, A6, F>(f) {} |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 103 | }; |
| 104 | |
| 105 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 106 | template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> struct NDNBOOST_MEM_FN_NAME(mf7): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf7)<R, T, A1, A2, A3, A4, A5, A6, A7, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6, A7)> |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 107 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 108 | typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7); |
| 109 | explicit NDNBOOST_MEM_FN_NAME(mf7)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf7)<R, T, A1, A2, A3, A4, A5, A6, A7, F>(f) {} |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 110 | }; |
| 111 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 112 | template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> struct NDNBOOST_MEM_FN_NAME(cmf7): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf7)<R, T, A1, A2, A3, A4, A5, A6, A7, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6, A7) const> |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 113 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 114 | typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7) const; |
| 115 | explicit NDNBOOST_MEM_FN_NAME(cmf7)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf7)<R, T, A1, A2, A3, A4, A5, A6, A7, F>(f) {} |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 116 | }; |
| 117 | |
| 118 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 119 | template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> struct NDNBOOST_MEM_FN_NAME(mf8): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6, A7, A8)> |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 120 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 121 | typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8); |
| 122 | explicit NDNBOOST_MEM_FN_NAME(mf8)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(mf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8, F>(f) {} |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 123 | }; |
| 124 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 125 | template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> struct NDNBOOST_MEM_FN_NAME(cmf8): public mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8, R (NDNBOOST_MEM_FN_CC T::*) (A1, A2, A3, A4, A5, A6, A7, A8) const> |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 126 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 127 | typedef R (NDNBOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8) const; |
| 128 | explicit NDNBOOST_MEM_FN_NAME(cmf8)(F f): mf<R>::NDNBOOST_NESTED_TEMPLATE NDNBOOST_MEM_FN_NAME2(cmf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8, F>(f) {} |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 129 | }; |
| 130 | |