Boost logo

Boost :

From: Franck Stauffer (franck_at_[hidden])
Date: 2006-12-05 11:23:26


On Dec 5, 2006, at 4:58 PM, Kevin Lynch wrote:

>
> I would go so far as to say that it is unacceptable for a serious
> library. Every extra requirement on client code that isn't absolutely
> necessary will dramatically reduce the potential userbase of your code
> unless it brings with it a set of stong benefits. And I think that
> you'll be hard pressed to show that this inheritance requirement
> brings
> ANY benefits, much less compelling ones.
>
> That said, I would really love to see a library like this in boost,
> and
> I encourage Franck to push forward with development.

Ok,

This is precisely the reason why I posted this sample code, as I was
quite sure the consensus on a quadrature library would differ from
this implementation. While I do agree that asking for inheritance
explicitely is not in general a good thing, I think this code is
fairly independent from this point. This bring me to the point raised
by Michael Fawcett:

> Why not just assume that the functor has typedefs for argument_type
> and return_type and document the details?

Yes, that is a solution, and the way I achieved that in my example
was to derive from std::unary_function (maybe because I am too lazy
to type two lines of code in my test functions ;-) ). Note that the
quadrature code itself doesn't make explicit use of this so that the
posted code works if you typedef result_type and argument_type them
in your functor by hand.

I am a bit sorry to have presented things the way I did. So let me
try again ;-). This code DOES NOT require to derive from std::unary
function, but it requires result_type and argument_type into be
typedef'ed in their functors.

I definitely appreciate the feedback, and I won't give up easily as I
really wish to have a useful generic quadrature code ;-)

Best Regards,

Franck


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