-#define IMPLEMENT_CTOR_CALLBACK(Class) \
-LY_DEFINE_MEMBER_FUNCTION(Class, constructor, #Class "::constructor", \
- 0, 0, 0, \
- (), \
- "")\
-{ \
- SCM val = (new Class)->self_scm(); \
- scm_gc_unprotect_object (val);\
- return val ; \
-} \
-
-DECLARE_UNSMOB(Music_iterator, iterator);
+#define IMPLEMENT_CTOR_CALLBACK(Class) \
+ LY_DEFINE_MEMBER_FUNCTION (Class, constructor, \
+ mangle_cxx_identifier (string (#Class) + "::constructor").c_str(), \
+ 0, 0, 0, \
+ (), \
+ "") \
+ { \
+ Class *c = (new Class); \
+ return c->unprotect (); \
+ }
+
+DECLARE_UNSMOB (Music_iterator, iterator);