blob: a094d3b55480cf09f1d3dd88e08aa3d807ccb48c [file] [log] [blame]
Jeff Thompsona28eed82013-08-22 16:21:10 -07001//
2// bind/mem_fn_cc.hpp - support for different calling conventions
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> _mfi::NDNBOOST_MEM_FN_NAME(mf0)<R, T> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) ())
Jeff Thompsona28eed82013-08-22 16:21:10 -070016{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070017 return _mfi::NDNBOOST_MEM_FN_NAME(mf0)<R, T>(f);
Jeff Thompsona28eed82013-08-22 16:21:10 -070018}
19
Jeff Thompson3d613fd2013-10-15 15:39:04 -070020template<class R, class T> _mfi::NDNBOOST_MEM_FN_NAME(cmf0)<R, T> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) () const)
Jeff Thompsona28eed82013-08-22 16:21:10 -070021{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070022 return _mfi::NDNBOOST_MEM_FN_NAME(cmf0)<R, T>(f);
Jeff Thompsona28eed82013-08-22 16:21:10 -070023}
24
Jeff Thompson3d613fd2013-10-15 15:39:04 -070025template<class R, class T, class A1> _mfi::NDNBOOST_MEM_FN_NAME(mf1)<R, T, A1> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1))
Jeff Thompsona28eed82013-08-22 16:21:10 -070026{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070027 return _mfi::NDNBOOST_MEM_FN_NAME(mf1)<R, T, A1>(f);
Jeff Thompsona28eed82013-08-22 16:21:10 -070028}
29
Jeff Thompson3d613fd2013-10-15 15:39:04 -070030template<class R, class T, class A1> _mfi::NDNBOOST_MEM_FN_NAME(cmf1)<R, T, A1> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1) const)
Jeff Thompsona28eed82013-08-22 16:21:10 -070031{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070032 return _mfi::NDNBOOST_MEM_FN_NAME(cmf1)<R, T, A1>(f);
Jeff Thompsona28eed82013-08-22 16:21:10 -070033}
34
Jeff Thompson3d613fd2013-10-15 15:39:04 -070035template<class R, class T, class A1, class A2> _mfi::NDNBOOST_MEM_FN_NAME(mf2)<R, T, A1, A2> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2))
Jeff Thompsona28eed82013-08-22 16:21:10 -070036{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070037 return _mfi::NDNBOOST_MEM_FN_NAME(mf2)<R, T, A1, A2>(f);
Jeff Thompsona28eed82013-08-22 16:21:10 -070038}
39
Jeff Thompson3d613fd2013-10-15 15:39:04 -070040template<class R, class T, class A1, class A2> _mfi::NDNBOOST_MEM_FN_NAME(cmf2)<R, T, A1, A2> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2) const)
Jeff Thompsona28eed82013-08-22 16:21:10 -070041{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070042 return _mfi::NDNBOOST_MEM_FN_NAME(cmf2)<R, T, A1, A2>(f);
Jeff Thompsona28eed82013-08-22 16:21:10 -070043}
44
Jeff Thompson3d613fd2013-10-15 15:39:04 -070045template<class R, class T, class A1, class A2, class A3> _mfi::NDNBOOST_MEM_FN_NAME(mf3)<R, T, A1, A2, A3> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3))
Jeff Thompsona28eed82013-08-22 16:21:10 -070046{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070047 return _mfi::NDNBOOST_MEM_FN_NAME(mf3)<R, T, A1, A2, A3>(f);
Jeff Thompsona28eed82013-08-22 16:21:10 -070048}
49
Jeff Thompson3d613fd2013-10-15 15:39:04 -070050template<class R, class T, class A1, class A2, class A3> _mfi::NDNBOOST_MEM_FN_NAME(cmf3)<R, T, A1, A2, A3> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3) const)
Jeff Thompsona28eed82013-08-22 16:21:10 -070051{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070052 return _mfi::NDNBOOST_MEM_FN_NAME(cmf3)<R, T, A1, A2, A3>(f);
Jeff Thompsona28eed82013-08-22 16:21:10 -070053}
54
Jeff Thompson3d613fd2013-10-15 15:39:04 -070055template<class R, class T, class A1, class A2, class A3, class A4> _mfi::NDNBOOST_MEM_FN_NAME(mf4)<R, T, A1, A2, A3, A4> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4))
Jeff Thompsona28eed82013-08-22 16:21:10 -070056{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070057 return _mfi::NDNBOOST_MEM_FN_NAME(mf4)<R, T, A1, A2, A3, A4>(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, class A4> _mfi::NDNBOOST_MEM_FN_NAME(cmf4)<R, T, A1, A2, A3, A4> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4) const)
Jeff Thompsona28eed82013-08-22 16:21:10 -070061{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070062 return _mfi::NDNBOOST_MEM_FN_NAME(cmf4)<R, T, A1, A2, A3, A4>(f);
Jeff Thompsona28eed82013-08-22 16:21:10 -070063}
64
Jeff Thompson3d613fd2013-10-15 15:39:04 -070065template<class R, class T, class A1, class A2, class A3, class A4, class A5> _mfi::NDNBOOST_MEM_FN_NAME(mf5)<R, T, A1, A2, A3, A4, A5> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5))
Jeff Thompsona28eed82013-08-22 16:21:10 -070066{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070067 return _mfi::NDNBOOST_MEM_FN_NAME(mf5)<R, T, A1, A2, A3, A4, A5>(f);
Jeff Thompsona28eed82013-08-22 16:21:10 -070068}
69
Jeff Thompson3d613fd2013-10-15 15:39:04 -070070template<class R, class T, class A1, class A2, class A3, class A4, class A5> _mfi::NDNBOOST_MEM_FN_NAME(cmf5)<R, T, A1, A2, A3, A4, A5> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5) const)
Jeff Thompsona28eed82013-08-22 16:21:10 -070071{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070072 return _mfi::NDNBOOST_MEM_FN_NAME(cmf5)<R, T, A1, A2, A3, A4, A5>(f);
Jeff Thompsona28eed82013-08-22 16:21:10 -070073}
74
Jeff Thompson3d613fd2013-10-15 15:39:04 -070075template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> _mfi::NDNBOOST_MEM_FN_NAME(mf6)<R, T, A1, A2, A3, A4, A5, A6> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6))
Jeff Thompsona28eed82013-08-22 16:21:10 -070076{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070077 return _mfi::NDNBOOST_MEM_FN_NAME(mf6)<R, T, A1, A2, A3, A4, A5, A6>(f);
Jeff Thompsona28eed82013-08-22 16:21:10 -070078}
79
Jeff Thompson3d613fd2013-10-15 15:39:04 -070080template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6> _mfi::NDNBOOST_MEM_FN_NAME(cmf6)<R, T, A1, A2, A3, A4, A5, A6> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6) const)
Jeff Thompsona28eed82013-08-22 16:21:10 -070081{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070082 return _mfi::NDNBOOST_MEM_FN_NAME(cmf6)<R, T, A1, A2, A3, A4, A5, A6>(f);
Jeff Thompsona28eed82013-08-22 16:21:10 -070083}
84
Jeff Thompson3d613fd2013-10-15 15:39:04 -070085template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> _mfi::NDNBOOST_MEM_FN_NAME(mf7)<R, T, A1, A2, A3, A4, A5, A6, A7> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7))
Jeff Thompsona28eed82013-08-22 16:21:10 -070086{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070087 return _mfi::NDNBOOST_MEM_FN_NAME(mf7)<R, T, A1, A2, A3, A4, A5, A6, A7>(f);
Jeff Thompsona28eed82013-08-22 16:21:10 -070088}
89
Jeff Thompson3d613fd2013-10-15 15:39:04 -070090template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7> _mfi::NDNBOOST_MEM_FN_NAME(cmf7)<R, T, A1, A2, A3, A4, A5, A6, A7> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7) const)
Jeff Thompsona28eed82013-08-22 16:21:10 -070091{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070092 return _mfi::NDNBOOST_MEM_FN_NAME(cmf7)<R, T, A1, A2, A3, A4, A5, A6, A7>(f);
Jeff Thompsona28eed82013-08-22 16:21:10 -070093}
94
Jeff Thompson3d613fd2013-10-15 15:39:04 -070095template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> _mfi::NDNBOOST_MEM_FN_NAME(mf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8))
Jeff Thompsona28eed82013-08-22 16:21:10 -070096{
Jeff Thompson3d613fd2013-10-15 15:39:04 -070097 return _mfi::NDNBOOST_MEM_FN_NAME(mf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8>(f);
Jeff Thompsona28eed82013-08-22 16:21:10 -070098}
99
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700100template<class R, class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> _mfi::NDNBOOST_MEM_FN_NAME(cmf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8) const)
Jeff Thompsona28eed82013-08-22 16:21:10 -0700101{
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700102 return _mfi::NDNBOOST_MEM_FN_NAME(cmf8)<R, T, A1, A2, A3, A4, A5, A6, A7, A8>(f);
Jeff Thompsona28eed82013-08-22 16:21:10 -0700103}