+/** Primary macro for inclusion in the implementation of each registered class. */
+#define GINAC_DECLARE_REGISTERED_CLASS_NO_CTORS(classname, supername) \
+public: \
+ typedef supername inherited; \
+ static registered_class_info reg_info; \
+ virtual const char *class_name(void) const; \
+ classname(const archive_node &n, const lst &sym_lst); \
+ virtual void archive(archive_node &n) const; \
+ static ex unarchive(const archive_node &n, const lst &sym_lst);
+
+/** Macro for inclusion in the declaration of each registered class.
+ * It declares some functions that are common to all classes derived
+ * from 'basic' as well as all required stuff for the GiNaC class
+ * registry (mainly needed for archiving). */