williamr@2: // williamr@2: // bind/mem_fn_cc.hpp - support for different calling conventions williamr@2: // williamr@2: // Do not include this header directly. williamr@2: // williamr@2: // Copyright (c) 2001 Peter Dimov and Multi Media Ltd. williamr@2: // williamr@2: // Distributed under the Boost Software License, Version 1.0. (See williamr@2: // accompanying file LICENSE_1_0.txt or copy at williamr@2: // http://www.boost.org/LICENSE_1_0.txt) williamr@2: // williamr@2: // See http://www.boost.org/libs/bind/mem_fn.html for documentation. williamr@2: // williamr@2: williamr@2: template _mfi::BOOST_MEM_FN_NAME(mf0) mem_fn(R (BOOST_MEM_FN_CC T::*f) ()) williamr@2: { williamr@2: return _mfi::BOOST_MEM_FN_NAME(mf0)(f); williamr@2: } williamr@2: williamr@2: template _mfi::BOOST_MEM_FN_NAME(cmf0) mem_fn(R (BOOST_MEM_FN_CC T::*f) () const) williamr@2: { williamr@2: return _mfi::BOOST_MEM_FN_NAME(cmf0)(f); williamr@2: } williamr@2: williamr@2: template _mfi::BOOST_MEM_FN_NAME(mf1) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1)) williamr@2: { williamr@2: return _mfi::BOOST_MEM_FN_NAME(mf1)(f); williamr@2: } williamr@2: williamr@2: template _mfi::BOOST_MEM_FN_NAME(cmf1) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1) const) williamr@2: { williamr@2: return _mfi::BOOST_MEM_FN_NAME(cmf1)(f); williamr@2: } williamr@2: williamr@2: template _mfi::BOOST_MEM_FN_NAME(mf2) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2)) williamr@2: { williamr@2: return _mfi::BOOST_MEM_FN_NAME(mf2)(f); williamr@2: } williamr@2: williamr@2: template _mfi::BOOST_MEM_FN_NAME(cmf2) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2) const) williamr@2: { williamr@2: return _mfi::BOOST_MEM_FN_NAME(cmf2)(f); williamr@2: } williamr@2: williamr@2: template _mfi::BOOST_MEM_FN_NAME(mf3) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3)) williamr@2: { williamr@2: return _mfi::BOOST_MEM_FN_NAME(mf3)(f); williamr@2: } williamr@2: williamr@2: template _mfi::BOOST_MEM_FN_NAME(cmf3) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3) const) williamr@2: { williamr@2: return _mfi::BOOST_MEM_FN_NAME(cmf3)(f); williamr@2: } williamr@2: williamr@2: template _mfi::BOOST_MEM_FN_NAME(mf4) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4)) williamr@2: { williamr@2: return _mfi::BOOST_MEM_FN_NAME(mf4)(f); williamr@2: } williamr@2: williamr@2: template _mfi::BOOST_MEM_FN_NAME(cmf4) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4) const) williamr@2: { williamr@2: return _mfi::BOOST_MEM_FN_NAME(cmf4)(f); williamr@2: } williamr@2: williamr@2: template _mfi::BOOST_MEM_FN_NAME(mf5) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5)) williamr@2: { williamr@2: return _mfi::BOOST_MEM_FN_NAME(mf5)(f); williamr@2: } williamr@2: williamr@2: template _mfi::BOOST_MEM_FN_NAME(cmf5) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5) const) williamr@2: { williamr@2: return _mfi::BOOST_MEM_FN_NAME(cmf5)(f); williamr@2: } williamr@2: williamr@2: template _mfi::BOOST_MEM_FN_NAME(mf6) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6)) williamr@2: { williamr@2: return _mfi::BOOST_MEM_FN_NAME(mf6)(f); williamr@2: } williamr@2: williamr@2: template _mfi::BOOST_MEM_FN_NAME(cmf6) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6) const) williamr@2: { williamr@2: return _mfi::BOOST_MEM_FN_NAME(cmf6)(f); williamr@2: } williamr@2: williamr@2: template _mfi::BOOST_MEM_FN_NAME(mf7) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7)) williamr@2: { williamr@2: return _mfi::BOOST_MEM_FN_NAME(mf7)(f); williamr@2: } williamr@2: williamr@2: template _mfi::BOOST_MEM_FN_NAME(cmf7) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7) const) williamr@2: { williamr@2: return _mfi::BOOST_MEM_FN_NAME(cmf7)(f); williamr@2: } williamr@2: williamr@2: template _mfi::BOOST_MEM_FN_NAME(mf8) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8)) williamr@2: { williamr@2: return _mfi::BOOST_MEM_FN_NAME(mf8)(f); williamr@2: } williamr@2: williamr@2: template _mfi::BOOST_MEM_FN_NAME(cmf8) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8) const) williamr@2: { williamr@2: return _mfi::BOOST_MEM_FN_NAME(cmf8)(f); williamr@2: }