From 2f85a9e6915b24e7dbd8ee528f24dcd0f5b8f2d3 Mon Sep 17 00:00:00 2001 From: Mathieu Lacage Date: Wed, 6 Sep 2006 14:56:13 +0200 Subject: [PATCH] move aroudn bound functors --- src/core/callback.h | 67 ++++++++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 31 deletions(-) diff --git a/src/core/callback.h b/src/core/callback.h index bc3efdb76..1f21c0100 100644 --- a/src/core/callback.h +++ b/src/core/callback.h @@ -133,37 +133,6 @@ private: T m_functor; }; -// an impl for Bound Functors: -template -class BoundFunctorCallbackImpl : public CallbackImpl { -public: - BoundFunctorCallbackImpl (T const &functor, TX a) - : m_functor (functor), m_a (a) {} - virtual ~BoundFunctorCallbackImpl () {} - R operator() (void) { - return m_functor (m_a); - } - R operator() (T1 a1) { - return m_functor (m_a,a1); - } - R operator() (T1 a1,T2 a2) { - return m_functor (m_a,a1,a2); - } - R operator() (T1 a1,T2 a2,T3 a3) { - return m_functor (m_a,a1,a2,a3); - } - R operator() (T1 a1,T2 a2,T3 a3,T4 a4) { - return m_functor (m_a,a1,a2,a3,a4); - } - R operator() (T1 a1,T2 a2,T3 a3,T4 a4,T5 a5) { - return m_functor (m_a,a1,a2,a3,a4,a5); - } -private: - T m_functor; - TX m_a; -}; - - // an impl for pointer to member functions template class MemPtrCallbackImpl : public CallbackImpl { @@ -477,6 +446,42 @@ Callback makeNullCallback (void) { return Callback (); } + +/** + * The following is experimental code. It works but we have + * not yet determined whether or not it is really useful and whether + * or not we really want to use it. + */ +// an impl for Bound Functors: +template +class BoundFunctorCallbackImpl : public CallbackImpl { +public: + BoundFunctorCallbackImpl (T const &functor, TX a) + : m_functor (functor), m_a (a) {} + virtual ~BoundFunctorCallbackImpl () {} + R operator() (void) { + return m_functor (m_a); + } + R operator() (T1 a1) { + return m_functor (m_a,a1); + } + R operator() (T1 a1,T2 a2) { + return m_functor (m_a,a1,a2); + } + R operator() (T1 a1,T2 a2,T3 a3) { + return m_functor (m_a,a1,a2,a3); + } + R operator() (T1 a1,T2 a2,T3 a3,T4 a4) { + return m_functor (m_a,a1,a2,a3,a4); + } + R operator() (T1 a1,T2 a2,T3 a3,T4 a4,T5 a5) { + return m_functor (m_a,a1,a2,a3,a4,a5); + } +private: + T m_functor; + TX m_a; +}; + template Callback makeBoundCallback (R (*fnPtr) (TX,T1), TX a) { ReferenceList*> impl =