|
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