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