Thank. I must have a blind spot for the "is_scalar" line as I missed it several times, thus I wasn't able to understand how pointers got rejected from is_class (and I kept looking for is_pointer, etc. but it was implicit). Sorry for the noise. One reason for my blind spot may be that I used to think that the primary type categories are created first as an independent, closed part and that the secondary type categories are just some kind of grouping of the primary categories. As this seems not to be the case, may I suggest to drop the distinction between primary and secondary type categories? Or is there some use in the separation? And while writing this, I wonder why "is_member_function_pointer" is in the secondary type category. It's not a union of some primary type categories, is it?
~~~~~~~~~~~~~~~~~~~~~ Basically it's history: until is_member_function_pointer was added then: 1) Exactly one of the primary type categories will be true for any given type. 2) The secondary categories are a union of one or more primary categories. Adding is_member_function_pointer broke (2), and it won't get fixed until we add is_member_object_pointer. John Maddock http://ourworld.compuserve.com/homepages/john_maddock/index.htm _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost