Boost logo

Boost :

From: Marcin Kalicinski (kalita_at_[hidden])
Date: 2006-04-30 07:41:39

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._at_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,

Boost list run by bdawes at, gregod at, cpdaniel at, john at