Boost logo

Boost :

From: Dave Abrahams (abrahams_at_[hidden])
Date: 2000-12-18 11:41:22

I know we had a long discussion about the intent of the standard with
regard to the question "is T* const a pointer"? I think the
resolution was that, however strict, our previous reading of the
standard misconstrued its intent and we would change the behavior of
type_traits appropriately. Did that ever happen, or have I
misunderstood our conclusion?

Reading ob_type_traits.hpp, I see:

//* is a type T a pointer type (including function pointers) - 
template <typename T> struct is_pointer 
   static T t;
   enum{ value = (!is_const<T>::value 
                 & !is_volatile<T>::value 
                 & !is_reference<T>::value
                 & !is_array<T>::value)
                 & ((1 == sizeof(detail::is_pointer_helper(t)))
                     | (1 == sizeof(detail::is_pointer_helper3
(t)))) }; 
This seems to indicate that T* const or T* volatile will not be 
treated as pointers by type_traits. Have I misread the code?

Boost list run by bdawes at, gregod at, cpdaniel at, john at