]> git.donarmstrong.com Git - lilypond.git/commitdiff
Define derived_unsmob<class T> function
authorDavid Kastrup <dak@gnu.org>
Thu, 7 May 2015 19:21:54 +0000 (21:21 +0200)
committerDavid Kastrup <dak@gnu.org>
Tue, 12 May 2015 10:28:26 +0000 (12:28 +0200)
This is a shortcut for dynamic_cast<T *>(T::unsmob (...)) in order to
provide an unsmob function for derived classes.

lily/include/smobs.hh

index 2787750ec5b4b58e7393ba2ddbc9fd1df7e61307..138bf363469ded7281485af6996a98f49ca87a38 100644 (file)
@@ -234,6 +234,14 @@ public:
   }
 };
 
+// derived_unsmob includes a dynamic_cast:
+
+template <class T>
+inline T *derived_unsmob (SCM arg)
+{
+  return dynamic_cast<T *> (T::unsmob (arg));
+}
+
 // Simple smobs
 template <class Super>
 class Simple_smob : public Smob_base<Super> {