[Please do not mail me a copy of your followup]
boost@lists.boost.org spake the secret code
I agree that it isn't clever to "reinvent the wheels". The libxml2 and expat are both great xml libraries. It will be much easier to offer API of the existing libraries than to implement a new xml library.
But what if the users don't have libxml2 on their computer? Just tell the users to download libxml2 before they want to use boost::xml? Or include the libxml2 in release version? I think neither of them are friendly to users.
I think boost.multiprecision has a good example to follow: you specify a back-end as a template argument, where the backends can be an existing library or a boost licensed implementation. The boost licensed implementation needn't be as fast or memory efficient as the existing libraries, the emphasis should be on simplest implementation that can satisfy the backend requirements of the front end library, without beeing too slow or memory intensive. -- "The Direct3D Graphics Pipeline" free book http://tinyurl.com/d3d-pipeline The Computer Graphics Museum http://computergraphicsmuseum.org The Terminals Wiki http://terminals.classiccmp.org Legalize Adulthood! (my blog) http://legalizeadulthood.wordpress.com