I also like the xml::dom::document document = xml::dom::parse_file(argv[1]); style usage. Also: xml::dom::element e = doc.documentElement(); xml::dom::node n = e;
This is just my preferred style/usage, and does not have to be adopted.
you mean you vote for the 'nodes-are-references' style ?
I mean, for example: namespace boost { namespace xml { namespace dom { typedef DocumentImpl * document; }}}
This would, however, allow the implementation to be adapted to when memory management needs to be used and to switch between different management policies for the various implementations.
Can you elaborate ?
Sure. In the libxml2 versions, nodes are explicitly deleted, and thus do not need to be managed, e.g:
typedef node_impl * node;
If an object requires explicit management, via shared_ptr for example: typedef boost::shared_ptr< node_impl > node;
Or, if it is say using a wrapper around an MSXML interface: class node: public CComPtr< IXMLDOMNode >{ ... };
The user can thus write: boost::xml::dom::node mynode = doc.selectNode( "/h:*[1]" );
without worrying about the underlying representation of boost::xml::dom::node.
Regards, Reece
_________________________________________________________________
Stay in touch with absent friends - get MSN Messenger http://www.msn.co.uk/messenger
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost