On Friday 14 February 2003 02:56 pm, Peter Dimov wrote:
> Douglas Gregor wrote:
> >   std::transform(c.begin(), c.end(), out, boost::ref<float>(f));
>
> I'm not sure whether that last part is a good idea.
>
> The ref "vision" has been that in a perfect world,
>
> ref(f)(x, y);
>
> is exactly the same as
>
> F & rf = f;
> rf(x, y);
>
> and the best way to accomplish that is a core change that enables all
> conversion operators to be considered in function calls (currently only
> conversion operators to pointers to functions are considered.)

Agreed. 

> With this in mind, the implementation of ref(f) that relies on the typedefs
> to approximate the above is fine (although it might be overkill to consider
> anything beyond result_type and perhaps sig) but the ref<R> syntax doesn't
> rhyme. We need to keep in mind that ref<Base>(derived) and ref<int
> const>(5) are valid today.

I can't think of any reason to write either of these last expressions, but I 
don't mind removing the extra syntax. Actually, this has the secondary 
benefit of eliminating the extra template parameter I needed to add to 
reference_wrapper.

        Doug
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to