struct Idclass : Identifier {\
virtual const char *classname() { return #Class; }\
Idclass(String s, Class*st):Identifier(s) { data = st; }\
- virtual Class* accessor(bool copy=false) {\
+ virtual Class* accessor(bool copy) {\
if (copy)\
return new Class(* (Class*) data);\
else\
return (Class*) data;\
}\
- ~Idclass() { delete accessor(); }\
+ ~Idclass() { delete accessor(false); }\
}\
-
+make_id_class(Real_id, Real, real);
make_id_class(Script_id, Script_def, script);
make_id_class(Lookup_id, Lookup, lookup);
make_id_class(Symtables_id, Symtables, symtables);
#include "proto.hh"
#include "string.hh"
+
+/* boolean argument to accesor is copy_b..*/
#define IDACCESSOR( Input_staff, staff)\
- virtual Input_staff * staff(bool = false) { error(#Input_staff); return 0; }
+ virtual Input_staff * staff(bool) { error(#Input_staff); return 0; }
struct Identifier {
void *data;
IDACCESSOR(Symtables, symtables)
IDACCESSOR(Music_general_chord, mchord)
IDACCESSOR(Lookup,lookup)
+ IDACCESSOR(Real,real)
IDACCESSOR(Notename_tab, notename_tab)
private:
Identifier(Identifier const&){}