Boost logo

Boost :

From: David Abrahams (david.abrahams_at_[hidden])
Date: 2002-01-01 15:00:54


      ::boost::is_compound<T>::value
     Evaluates to true only if T is a compound type. That is an array, function, pointer, reference, enumerator, union, class or member function type.
     3.9.2

      
       

Based on this, I thought I could implement is_member_function_pointer with is_member_pointer && is_compound, but as it turns out is_compound is implemented thus:

template <typename T> struct is_compound
{
   BOOST_STATIC_CONSTANT(bool, value =
      (::boost::type_traits::ice_or<
         ::boost::is_array<T>::value,
         ::boost::is_pointer<T>::value,
         ::boost::is_reference<T>::value,
         ::boost::is_class<T>::value,
         ::boost::is_union<T>::value,
         ::boost::is_enum<T>::value,
         ::boost::is_member_pointer<T>::value
>::value));
};

Also, based on this thread: http://groups.yahoo.com/group/boost/message/21331, it seems to me that we ought to clearly distinguish member functions from member function pointers.

===================================================
  David Abrahams, C++ library designer for hire
 resume: http://users.rcn.com/abrahams/resume.html

        C++ Booster (http://www.boost.org)
          email: david.abrahams_at_[hidden]
===================================================



Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk