Hamish Mackenzie wrote:

And I don't use a 'document' class, as that is managed implicitely
by my dom::document_ptr:

dom::document_ptr document; // create new document;
dom::document_ptr doc(document); // create second reference to it
dom::document_ptr doc2 = document.clone(); // clone it, i.e. make deep
                                             copy


This is not consistent with the standard library or C++ in general.  It
will seem strange that the pointer class
1) Does not require dereferencing

would you say the same if the class name was spelled 'document_ref' instead ?


1 & 4 would be ok, but 3 would stand and having an 'operator bool' would
be added to the list.


3) Has a constructor such as document_ptr( "config.xml" )
4) Has member functions such as write_to_file

The alternative would allow both...

boost::shared_ptr< dom::document > doc( new dom::document() );
boost::shared_ptr< dom::document > doc1( doc );
dom::document doc2( *doc1 );

and if the 'doc1' reference was non-owning...

dom::document doc();  // Create new doc
dom::document & doc1( doc ); // Second reference
dom::document doc2( doc1 );  // Deep copy

right, but given such an approach, what would nodes return in their 'parent()' method ?


The parent is always an element (is that right?) so it would return
element_ptr or element_ref.

yes. Sorry, I meant to ask what 'document()' would return.


Stefan

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to