$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: David Abrahams (dave_at_[hidden])
Date: 2003-04-26 18:55:05
Mike Conley <conley.141_at_[hidden]> writes:
> David Abrahams <dave_at_[hidden]> wrote in
> news:uof2t8b4v.fsf_at_[hidden]: 
>
>>     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