Boost logo

Boost :

From: Thorsten Ottosen (thorsten.ottosen_at_[hidden])
Date: 2006-04-24 09:47:21

John Maddock wrote:

> Let's start with child access, I can't believe you're not using operator[]
> here. Yes I know it's cute, but it does work well for std::map.
> How about:
> mymap b;
> b[a][b][c] = 2; // assigns value 2 to node at a/b/c
> The way I'm figuring this would work is:
> * Accessing a child node with operator[] always succeeds but may point to a
> "ghost" node that doesn't actually exist.
> * Assignment to a node always succeeds, the node gets created if required.
> * Reading from a node throws if the node doesn't exist yet, or if the
> conversion can't be performed.
> * If you read a Boost::optional then it shouldn't throw, and no need for a
> special member function.
> I'm assuming that operator [] returns another "property map" by value BTW.

Seems both expensive (unless state is shared using intrisive_ptr), and
impossible, since the returned instance would not know how to change the
original instance.

Are you sure you don't mean "by reference", perhaps overloaded on


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