On Tuesday 12 November 2002 04:26 am, Aleksey Gurtovoy wrote:
> Well, since that particular reason of type deduction failure (attempting to
> call a member function on the object which type does not contain the
> specified member) is not explicitly listed under 14.8.2 para 2, yes, in one
> or another form. I haven't figured out yet what would be the best way
> (politically and technically) to get that part of the language into the
> state we would like it to have ;).

Once we've solved the "technically", I think the politically best way to 
handle this would be to submit a very detailed defect report. The problem is 
easy to point out, and it is easy to give a case where the standard is 
ambiguous. However, we must give the committee the "big picture" regarding 
their decision: resolving the defect "our way" will make C++ a vastly more 
powerful and more safe language, because we will have the power to do 
concept-checking without spewing mountains of errors when we find a failure. 
And someone better be at the meeting when the committee discusses this :)

[snip code]
>     template< typename Functor, typename R, typename T1 >
>     yes_tag is_callable_helper(
>           sink< sizeof(static_cast<R>(
>               get<Functor>().Functor::operator()( get<T1>() ) // here
>             ))>
>         );
[snip more code]

> The marked line falls directly under one of the 14.8.2 para 2's items:
>
> "-- Attempting to use a type in the qualifier portion of a qualified name
> that names a type when that
> type does not contain the specified member [...]"

Right, but if there is an operator() but no operator() that takes a single 
parameter of a type convertible from T1, or if the return type can't be 
static_cast to R, we're back to a case that isn't listed in 14.8.2 paragraph 
2.

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

Reply via email to