The type_traits docs include this table entry:
-----------
::boost::is_member_pointer<T>::value

Evaluates to true only if T is a cv-qualified pointer to a data-member or member-function.

3.9.2

8.3.3



On some compilers, member function pointers may be incorrectly identified as regular pointers.
------------
 
The final remark confuses me. The way it's worded, it doesn't seem to imply anything about is_member_pointer<T>, but about is_pointer<T> instead. If that's the case, shouldn't it appear in the entry for is_pointer (and then, couldn't we fix is_pointer by returning false when is_member_pointer returned true)? If that's not the case, shouldn't it be reworded as follows:
 
On some compilers, is_member_pointer<T>::value is always false
 
...and can we say something about which compilers have this property? 
 
===================================================
  David Abrahams, C++ library designer for hire
 resume:
http://users.rcn.com/abrahams/resume.html
 
        C++ Booster (http://www.boost.org)
          email:
david.abrahams@rcn.com
===================================================