
Hi Jeff, Thank you for the review.
* What is your evaluation of the design? [...] I agree with what others have mentioned: the paths should be seperate from the tree.
Yes, this is probably the biggest generalization that can be made without compromising simplicity of use. It promises quite a lot, for example paths might be used to hide where XML attributes (and other metadata) are stored in the tree, so that they can always be accessed trasparently.
I don't like how XML attributes are stored. It should at least be an option to treat <x y="1" z="2" /> and <x> <y>1</y> <z>2</z> </x> as the same structure, without the "<xmlattrs>" node [...]
True. I have already seen many people request that, but so far everyone wanted the tree structure to be different ;-) I think there should be a generic way of telling the parser where it should put the metadata. I wonder if paths can be used to do it. For example: xml_path path("node1.node2.@attr"); int attr = pt[path].get<int>(); xml_path will handle finding attribute "attr". It will do it by inspecting metadata stored inside the tree. The metadata will determine how the XML is stored in ptree. If XML metadata is not present (for example the tree was created by reading JSON), it will fail. Note that metadata will be a part of the tree created by parser, it will not require complicating the node structure in any way.
The ability to preserve comments in a file would be very nice.
I have seen many people request it, so it definitely is. I don't yet know how hard it will be before I try to implement it.
* What is your evaluation of the documentation? [..] A better "mission statement" about what the library is for would help as well; right now, it's not very clear what the author thinks the library is trying to do.
I know. The docs are quite misleading at the moment. Some people thought the library is a replacement for program options, some thought it is a generic tree container. The only constant was that everybody was equally confused. I'm going to move docs to quickbook (when I manage to get the boost docs toolchain to work), and then reorganize it quite a bit. Best Regards, Marcin