Mike Conley <[EMAIL PROTECTED]> writes:

> David Abrahams <[EMAIL PROTECTED]> wrote in
> news:[EMAIL PROTECTED]: 
>
>>     This one is sticky.
>> 
>>     class Y : X { true_type f() { return is_convertible<Y,X>::type();
>>     } }; false_type x = is_convertible<Y,X>::type();
>> 
>
> I'm not sure I see the problem here.  If is_convertible is a built in 
> compile time operator, the results should depend upon context.  This should 
> work as expected.  Really, it's no more interesting than:
>
> char c[23];
> cout << sizeof(c);
> { 
>    char c[22];
>    cout << sizeof(c);
> }
>
> printing 2322.

What about the ODR?

Further, suppose I write a metafunction:

        template <class T>
        struct is_const_and_int_convertible
           : and_<
                 is_const<T>
               , is_convertible<T,int>
             >
         {};

Does this one depend on context also?
                  
-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

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

Reply via email to