From: Stefan Slapeta (stefan_nospam__at_[hidden])
Date: 2004-11-29 16:40:43
Peter Dimov wrote:
> I'm really not sure what do you mean by "modern" boost requirements.
None of the libraries that have recently been included into boost placed
their headers in the boost root directory. I don't know whether this has
become a (formal) requirement but that's what I wanted to express.
>> a) this header should be placed in the bind subdirectory, e.g.
> What purpose does that serve? Why not boost/bind/bind/bind.hpp?
It was just an idea how to separate this header from the existing. One
of many possible.
>> b) this header should introduce a separate namespace 'bind' or
>> 'function' to avoid the well-known namespace clashes with
>> boost::lambda that are _really_ annoying.
> Again, what purpose would that serve? The only name that bind.hpp
> "reserves" in boost is 'bind'. Defining a namespace 'bind' still
> reserves the same name in boost, namely, 'bind', except that user code
> is now uglier.
Try to include boost/bind.hpp and boost/lambda/bind.hpp at the same time
(just for matters of uniformity: this is the first time where I don't
agree that one of those includes is in a subdirectory and the other is not!)
I've not found any solution for how to use e.g. _1 from boost.lambda in
one function and _1 from boost.bind in another _without_ having to
qualify these two everytime, which is totally ugly IMO.
> The original intent has been to make the placeholders globally
> available. As identifiers that start with an underscore are not allowed
> at the global namespace, and since defining a variable in a header would
> cause link errors, the placeholders have been put in an unnamed namespace.
ah ... I understand. IIRC, the _1 from boost.lamba are types and don't
have these problems therefore.
This means more or less that I'll never be able to write 'using
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk