Date: Sun, 17 Nov 2002 12:49 +0000 (GMT) From: [EMAIL PROTECTED] (Dave Harris) >> "Serialization Overrides" explains this and gives a code excerpt >> showing what one has to do to use a constructor with arguments.
>The code looks roughly like: > ar >> a; > t = new T(a); > ar >> *t; >Is it possible to support code like: > t = new T(ar); >Or indeed: > const T t(ar); >? It seems to me that your versioning infrastructure doesn't support this. It doesn't . It conflicted with version and added no known benefit. >At first sight this seems like a problem. what problem? > class MyClass { > const MyMember m_member1; > const MyMember m_member2; > public: > MyClass( boost::basic_iarchive &ar ) : > m_member1(ar), m_member2(ar) { > } > }; >and something like this is surely the only way to support const members. That's not true const members are initialized in the constructor, usually from constructor argments. as these arguments are taken from the stream before the object is constructed, that are passed to the constructor and every thing works as normal. Your method would require that every class that uses serialization and but no default constructor have code in it that knows about archives. Non intrusive serialization could be be implemented in this case. >Is it your belief that this kind of thing is best discouraged? If so, yes Robert Ramey _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost