X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=nucleus%2Flibrary%2Fstructures%2Famorph.h;h=6d817e8aeb4ab93320fc0788a333815b5df5ccb2;hb=082d1ce6c2d109912119a581086f36c9eaa368b6;hp=f35f8dbae47a985618068552b838b648f2dbee9f;hpb=936edc460f256ba5ddba2ad1c80e8d278b9608cc;p=feisty_meow.git diff --git a/nucleus/library/structures/amorph.h b/nucleus/library/structures/amorph.h index f35f8dba..6d817e8a 100644 --- a/nucleus/library/structures/amorph.h +++ b/nucleus/library/structures/amorph.h @@ -76,9 +76,12 @@ public: index "new_maximum" and upwards are thrown away. existing fields are kept. */ - void reset(int new_maximum = 0); + void resize(int new_maximum = 0); //!< like adjust but doesn't keep existing contents. + void reset() { this->resize(0); } + //!< cleans out all of the contents. + basis::outcome put(int field, const contents *data); //!< Enters an object into the field at index "field" in the amorph. /*!< If "data" is NIL, then the field is cleared. The amorph considers the @@ -180,7 +183,7 @@ private: // not to be used: amorphs should not be copied because it is intended that // they support storing heavyweight objects that either have no copy // constructors or have high-cost copy constructors. - amorph(const amorph &to_copy) {} //!< not to be used. + amorph(const amorph &to_copy) {_fields_used = 0;} //!< not to be used. amorph &operator = (const amorph &to_copy) { return *this; } //!< not to be used. }; @@ -280,7 +283,7 @@ void amorph::check_fields(const char *where) const } template -void amorph::reset(int new_maximum) +void amorph::resize(int new_maximum) { FUNCDEF("reset"); CHECK_FIELDS;