- explicit ${CONTAINER}(ex const & e1);
- explicit ${CONTAINER}(ex const & e1, ex const & e2);
- explicit ${CONTAINER}(ex const & e1, ex const & e2, ex const & e3);
- explicit ${CONTAINER}(ex const & e1, ex const & e2, ex const & e3,
- ex const & e4);
- explicit ${CONTAINER}(ex const & e1, ex const & e2, ex const & e3,
- ex const & e4, ex const & e5);
- explicit ${CONTAINER}(ex const & e1, ex const & e2, ex const & e3,
- ex const & e4, ex const & e5, ex const & e6);
- explicit ${CONTAINER}(ex const & e1, ex const & e2, ex const & e3,
- ex const & e4, ex const & e5, ex const & e6,
- ex const & e7);
- explicit ${CONTAINER}(ex const & e1, ex const & e2, ex const & e3,
- ex const & e4, ex const & e5, ex const & e6,
- ex const & e7, ex const & e8);
- explicit ${CONTAINER}(ex const & e1, ex const & e2, ex const & e3,
- ex const & e4, ex const & e5, ex const & e6,
- ex const & e7, ex const & e8, ex const & e9);
- explicit ${CONTAINER}(ex const & e1, ex const & e2, ex const & e3,
- ex const & e4, ex const & e5, ex const & e6,
- ex const & e7, ex const & e8, ex const & e9,
- ex const &e10);
+ explicit ${CONTAINER}(const ex & e1);
+ explicit ${CONTAINER}(const ex & e1, const ex & e2);
+ explicit ${CONTAINER}(const ex & e1, const ex & e2, const ex & e3);
+ explicit ${CONTAINER}(const ex & e1, const ex & e2, const ex & e3,
+ const ex & e4);
+ explicit ${CONTAINER}(const ex & e1, const ex & e2, const ex & e3,
+ const ex & e4, const ex & e5);
+ explicit ${CONTAINER}(const ex & e1, const ex & e2, const ex & e3,
+ const ex & e4, const ex & e5, const ex & e6);
+ explicit ${CONTAINER}(const ex & e1, const ex & e2, const ex & e3,
+ const ex & e4, const ex & e5, const ex & e6,
+ const ex & e7);
+ explicit ${CONTAINER}(const ex & e1, const ex & e2, const ex & e3,
+ const ex & e4, const ex & e5, const ex & e6,
+ const ex & e7, const ex & e8);
+ explicit ${CONTAINER}(const ex & e1, const ex & e2, const ex & e3,
+ const ex & e4, const ex & e5, const ex & e6,
+ const ex & e7, const ex & e8, const ex & e9);
+ explicit ${CONTAINER}(const ex & e1, const ex & e2, const ex & e3,
+ const ex & e4, const ex & e5, const ex & e6,
+ const ex & e7, const ex & e8, const ex & e9,
+ const ex &e10);
-${CONTAINER}::${CONTAINER}(ex const & e1, ex const & e2, ex const & e3,
- ex const & e4, ex const & e5, ex const & e6,
- ex const & e7, ex const & e8) : basic(TINFO_${CONTAINER_UC})
+${CONTAINER}::${CONTAINER}(const ex & e1, const ex & e2, const ex & e3,
+ const ex & e4, const ex & e5, const ex & e6,
+ const ex & e7, const ex & e8) : basic(TINFO_${CONTAINER})
-${CONTAINER}::${CONTAINER}(ex const & e1, ex const & e2, ex const & e3,
- ex const & e4, ex const & e5, ex const & e6,
- ex const & e7, ex const & e8, ex const & e9)
- : basic(TINFO_${CONTAINER_UC})
+${CONTAINER}::${CONTAINER}(const ex & e1, const ex & e2, const ex & e3,
+ const ex & e4, const ex & e5, const ex & e6,
+ const ex & e7, const ex & e8, const ex & e9)
+ : basic(TINFO_${CONTAINER})
-${CONTAINER}::${CONTAINER}(ex const & e1, ex const & e2, ex const & e3,
- ex const & e4, ex const & e5, ex const & e6,
- ex const & e7, ex const & e8, ex const & e9,
- ex const &e10)
- : basic(TINFO_${CONTAINER_UC})
+${CONTAINER}::${CONTAINER}(const ex & e1, const ex & e2, const ex & e3,
+ const ex & e4, const ex & e5, const ex & e6,
+ const ex & e7, const ex & e8, const ex & e9,
+ const ex &e10)
+ : basic(TINFO_${CONTAINER})
+//////////
+// archiving
+//////////
+
+/** Construct object from archive_node. */
+${CONTAINER}::${CONTAINER}(const archive_node &n, const lst &sym_lst) : inherited(n, sym_lst)
+{
+ debugmsg("${CONTAINER} constructor from archive_node", LOGLEVEL_CONSTRUCT);
+ for (unsigned int i=0; true; i++) {
+ ex e;
+ if (n.find_ex("seq", e, sym_lst, i))
+ seq.push_back(e);
+ else
+ break;
+ }
+}
+
+/** Unarchive the object. */
+ex ${CONTAINER}::unarchive(const archive_node &n, const lst &sym_lst)
+{
+ return (new ${CONTAINER}(n, sym_lst))->setflag(status_flags::dynallocated);
+}
+
+/** Archive the object. */
+void ${CONTAINER}::archive(archive_node &n) const
+{
+ inherited::archive(n);
+ ${STLT}::const_iterator i = seq.begin(), iend = seq.end();
+ while (i != iend) {
+ n.add_ex("seq", *i);
+ i++;
+ }
+}
+