handle const methods on const objects
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Mon, 30 Apr 2007 09:48:35 +0200
changeset 443 488fa6235c5f
parent 436 e3223ddba0fb
child 444 1647ca57f19d
handle const methods on const objects
src/core/callback.h
--- a/src/core/callback.h	Thu Apr 19 22:29:09 2007 +0200
+++ b/src/core/callback.h	Mon Apr 30 09:48:35 2007 +0200
@@ -316,6 +316,10 @@
 Callback<R> MakeCallback (R (OBJ::*mem_ptr) (), OBJ *const objPtr) {
   return Callback<R> (objPtr, mem_ptr);
 }
+template <typename OBJ, typename R>
+Callback<R> MakeCallback (R (OBJ::*mem_ptr) () const, OBJ const *const objPtr) {
+  return Callback<R> (objPtr, mem_ptr);
+}
 /**
  * \ingroup MakeCallback
  * \param mem_ptr class method member pointer
@@ -328,6 +332,10 @@
 Callback<R,T1> MakeCallback (R (OBJ::*mem_ptr) (T1), OBJ *const objPtr) {
   return Callback<R,T1> (objPtr, mem_ptr);
 }
+template <typename OBJ, typename R, typename T1>
+Callback<R,T1> MakeCallback (R (OBJ::*mem_ptr) (T1) const, OBJ const *const objPtr) {
+  return Callback<R,T1> (objPtr, mem_ptr);
+}
 /**
  * \ingroup MakeCallback
  * \param mem_ptr class method member pointer
@@ -340,6 +348,10 @@
 Callback<R,T1,T2> MakeCallback (R (OBJ::*mem_ptr) (T1,T2), OBJ *const objPtr) {
   return Callback<R,T1,T2> (objPtr, mem_ptr);
 }
+template <typename OBJ, typename R, typename T1, typename T2>
+Callback<R,T1,T2> MakeCallback (R (OBJ::*mem_ptr) (T1,T2) const, OBJ const*const objPtr) {
+  return Callback<R,T1,T2> (objPtr, mem_ptr);
+}
 /**
  * \ingroup MakeCallback
  * \param mem_ptr class method member pointer
@@ -352,6 +364,10 @@
 Callback<R,T1,T2,T3> MakeCallback (R (OBJ::*mem_ptr) (T1,T2,T3), OBJ *const objPtr) {
   return Callback<R,T1,T2,T3> (objPtr, mem_ptr);
 }
+template <typename OBJ, typename R, typename T1,typename T2, typename T3>
+Callback<R,T1,T2,T3> MakeCallback (R (OBJ::*mem_ptr) (T1,T2,T3) const, OBJ const*const objPtr) {
+  return Callback<R,T1,T2,T3> (objPtr, mem_ptr);
+}
 /**
  * \ingroup MakeCallback
  * \param mem_ptr class method member pointer
@@ -364,6 +380,10 @@
 Callback<R,T1,T2,T3,T4> MakeCallback (R (OBJ::*mem_ptr) (T1,T2,T3,T4), OBJ *const objPtr) {
   return Callback<R,T1,T2,T3,T4> (objPtr, mem_ptr);
 }
+template <typename OBJ, typename R, typename T1, typename T2, typename T3, typename T4>
+Callback<R,T1,T2,T3,T4> MakeCallback (R (OBJ::*mem_ptr) (T1,T2,T3,T4) const, OBJ const*const objPtr) {
+  return Callback<R,T1,T2,T3,T4> (objPtr, mem_ptr);
+}
 /**
  * \ingroup MakeCallback
  * \param mem_ptr class method member pointer
@@ -376,6 +396,10 @@
 Callback<R,T1,T2,T3,T4,T5> MakeCallback (R (OBJ::*mem_ptr) (T1,T2,T3,T4,T5), OBJ *const objPtr) {
   return Callback<R,T1,T2,T3,T4,T5> (objPtr, mem_ptr);
 }
+template <typename OBJ, typename R, typename T1, typename T2, typename T3, typename T4,typename T5>
+Callback<R,T1,T2,T3,T4,T5> MakeCallback (R (OBJ::*mem_ptr) (T1,T2,T3,T4,T5) const, OBJ const*const objPtr) {
+  return Callback<R,T1,T2,T3,T4,T5> (objPtr, mem_ptr);
+}
 
 /**
  * \ingroup MakeCallback