Re: Boost.function enhanced (a little)
* Mathias Gaunard:
On 7 oct, 07:05, "Alf P. Steinbach" <al...@start.no> wrote:
And if so, whether let's-teach-'em actually was a design criterion of
boost::function and/or other Boost libraries?
Making the library intuitive is part of the design of all good
I'm sorry but AFAICS this is irrelevant to the question asked.
The questions were about one of the needlessly non-intutive parts of
boost::function (namely, its lack of support for creating delegates), and
say that all good libraries are designed to be intuitive. Hence, treating
response as meant to be relevant to at least something in context, you're
arguing that boost::function is not a "good" library. That it's a bad
I disagree, of course: nothing's perfect, and a few obvious flaws don't make
library not "good".
Regarding the question, it was about your statement that
A) "the library should make it easier for users to understand separation of
Forcing library users to repeatedly, again and again, write very verbose
combine the separated concerns when they need to express what is a single
concept in other languages (namely a delegate), I really fail to see how
the library user's work more tedious, error prone and verbose helps the C++
programmers see the light about how great that idea is?
B) "instead of using a do-everything utility"
I do not understand which "do-everything utility" you're referring to.
One that would do both type erasure and member function binding.
I'm sorry but this doesn't seem to make sense in context.
Providing delegate construction support is not to "do-everything".
So, what concretely do/did you mean by "do-everything", or do you now
that you were mistaken in using that misleading term?
C) "that will do more than they need"
Exactly what are you referring to here?
Using an utility that does both mean you'll have to pay for the
overhead of type erasure even if you just need member function
I'm sorry but again AFAICS this is irrelevant to the question asked.
Could you perhaps explain this "overhead of type erasure" that you "have to
in more detail? Not some overhead that can be easily avoided. The one that
"have to pay"?
Regarding the question I posed, about what you meant earlier by "will do
than they need":
It's tedious but trivial to add construction of delegates on top of
boost::function. That construction adds no overhead and it's very often
e.g. IIRC this thread started with someone posting code to do it. Hence if
was what you were referring to, something relevant to the thread,
that construction of delegates is "more than they need", then you were just
If on the other hand you were referring to the fact that it's possible to
general mechanism also in some cases where a more specialized mechanism
more efficient, then that's the case for /all/ library functionality.
Including that it's the case for the functionality that boost::function
currently does offer, which by that argument shouldn't be offered. Hence if
was what you meant, then it was meaningless, ridiculous and absurd.
So either your statement was just Wrong(TM) (first case), or it was
Silly(TM) (second case), as far as I can see.
Cheers & hth.,
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]