
"Peter Dimov" <pdimov@mmltd.net> writes:
I very much do not like the 'traits' policy parameter (which is not a traits class at all, even though basic_string says so.) Do not deceive the users that you have a single axis of parameterization when in fact you have six, some of them redundant, some of them more useful than others. basic_ptree should be templatized on key, data, ordering, inserter and extractor, not necessarily in that order. The default arguments should be clearly documented and useful outside of the library context. It should be possible to eliminate char_type, but I'm not 100% positive about it.
It may be possible to use the Boost.Parameter library to help keep this interface manageable. It now supports named *and* deduced (unnamed) template parameters. A deduced template parameter is one whose argument can be provided in any order because its type uniquely determines which parameter it maps to. -- Dave Abrahams Boost Consulting www.boost-consulting.com