blob: 0ffa6601b008050012311b690e0816ebea56b43e [file] [log] [blame]
Jeff Thompsona28eed82013-08-22 16:21:10 -07001//
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 Thompson3d613fd2013-10-15 15:39:04 -070015template<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 Thompsona28eed82013-08-22 16:21:10 -070016{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070017 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 Thompsona28eed82013-08-22 16:21:10 -070019};
20
Jeff Thompson3d613fd2013-10-15 15:39:04 -070021template<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 Thompsona28eed82013-08-22 16:21:10 -070022{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070023 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 Thompsona28eed82013-08-22 16:21:10 -070025};
26
27
Jeff Thompson3d613fd2013-10-15 15:39:04 -070028template<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 Thompsona28eed82013-08-22 16:21:10 -070029{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070030 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 Thompsona28eed82013-08-22 16:21:10 -070032};
33
Jeff Thompson3d613fd2013-10-15 15:39:04 -070034template<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 Thompsona28eed82013-08-22 16:21:10 -070035{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070036 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 Thompsona28eed82013-08-22 16:21:10 -070038};
39
40
Jeff Thompson3d613fd2013-10-15 15:39:04 -070041template<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 Thompsona28eed82013-08-22 16:21:10 -070042{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070043 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 Thompsona28eed82013-08-22 16:21:10 -070045};
46
Jeff Thompson3d613fd2013-10-15 15:39:04 -070047template<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 Thompsona28eed82013-08-22 16:21:10 -070048{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070049 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 Thompsona28eed82013-08-22 16:21:10 -070051};
52
53
Jeff Thompson3d613fd2013-10-15 15:39:04 -070054template<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 Thompsona28eed82013-08-22 16:21:10 -070055{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070056 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 Thompsona28eed82013-08-22 16:21:10 -070058};
59
Jeff Thompson3d613fd2013-10-15 15:39:04 -070060template<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 Thompsona28eed82013-08-22 16:21:10 -070061{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070062 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 Thompsona28eed82013-08-22 16:21:10 -070064};
65
66
Jeff Thompson3d613fd2013-10-15 15:39:04 -070067template<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 Thompsona28eed82013-08-22 16:21:10 -070068{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070069 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 Thompsona28eed82013-08-22 16:21:10 -070071};
72
Jeff Thompson3d613fd2013-10-15 15:39:04 -070073template<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 Thompsona28eed82013-08-22 16:21:10 -070074{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070075 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 Thompsona28eed82013-08-22 16:21:10 -070077};
78
79
Jeff Thompson3d613fd2013-10-15 15:39:04 -070080template<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 Thompsona28eed82013-08-22 16:21:10 -070081{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070082 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 Thompsona28eed82013-08-22 16:21:10 -070084};
85
Jeff Thompson3d613fd2013-10-15 15:39:04 -070086template<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 Thompsona28eed82013-08-22 16:21:10 -070087{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070088 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 Thompsona28eed82013-08-22 16:21:10 -070090};
91
92
Jeff Thompson3d613fd2013-10-15 15:39:04 -070093template<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 Thompsona28eed82013-08-22 16:21:10 -070094{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070095 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 Thompsona28eed82013-08-22 16:21:10 -070097};
98
Jeff Thompson3d613fd2013-10-15 15:39:04 -070099template<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 Thompsona28eed82013-08-22 16:21:10 -0700100{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700101 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 Thompsona28eed82013-08-22 16:21:10 -0700103};
104
105
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700106template<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 Thompsona28eed82013-08-22 16:21:10 -0700107{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700108 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 Thompsona28eed82013-08-22 16:21:10 -0700110};
111
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700112template<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 Thompsona28eed82013-08-22 16:21:10 -0700113{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700114 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 Thompsona28eed82013-08-22 16:21:10 -0700116};
117
118
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700119template<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 Thompsona28eed82013-08-22 16:21:10 -0700120{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700121 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 Thompsona28eed82013-08-22 16:21:10 -0700123};
124
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700125template<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 Thompsona28eed82013-08-22 16:21:10 -0700126{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700127 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 Thompsona28eed82013-08-22 16:21:10 -0700129};
130