Boost logo

Boost :

From: Edward Diener (eddielee_at_[hidden])
Date: 2002-11-13 14:27:21


"Anthony Williams" <anthony.williamsNOSPAM_at_[hidden]> wrote in
message news:15826.2782.569000.619636_at_gargle.gargle.HOWL...
> Edward Diener writes:
> > 1) Are the get(), put() functions somewhere, like in the boost
namespace ?
> > Is there a doc for the parameters these functions take, or is it the
intent
> > that if one wants to use them, one looks in the source code to figure
them
> > out ?
>
> As Jeremy said earlier, the get() and put() functions can go anywhere they
can
> be reached by argument-dependent lookup when called as
> get(property_map,key_value) or put(property_map,key_value,new_value).

So there is really no get() and put() implementation in the header files. Is
the idea that my property map contains the necessary get() and/or put()
implementations and this is used to make the call to map properties to
values ? Somehow I assumed that get(), put(), and operator[] were template
functions which existed and automatically work once property map template
classes were passed to them.

>
> The parameters are as I just showed --- i.e. the description is in terms
of
> valid call expressions, not in terms of actual function signatures.

This I don't understand. The get() and put() functions are supposed to exist
somewhere but the types of parameters to them can't be specified in any way.

>
> > 2) What is the necessary interface to a property map which you mention
> > above. I see property map categories, property traits, property map
types,
> > but I am missing an understanding from the documentation of the
necessary
> > interface for creating a property map ?
>
> To meet the concept described in Jeremy's docs, a property map must define
the
> necessary property_traits for its chosen category, and it must support
get()
> and/or put() and maybe operator[] as necessary for its chosen category.

Ah, the fog clears a little bit. I wish this simple thing had been actually
written in the docs. No doubt I was supposed to understand it and just
didn't. I still am struggling where get(), put(), and operator[] come in. I
do see that each category defines what is necessary for itself and that
there are get() and put() functions in each category which must be
implemented when creating one's own property map.

>
> > Finally I would like a non-partisan answer from you to my next question
and
> > I am perfectly willing to be wrong and accept the fact that my lack of
> > understanding of "concept" based explanations are at fault. Do you feel
that
> > the answers to my 2 questions are readily apparent to most intelligent
C++
> > programmers from reading the property map docs ?
>
> As Jan Langer pointed out, there are specific pages for each of the
property
> map categories. If you missed these you will have difficulty piecing
> everything together.

No, I saw them from the beginning. I just didn't ( and still don't )
understand how they fit in with some sort of global get(), put(), and
operator[] template functions.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk