[/ 
  Copyright 2007 John Maddock.
  Distributed under the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
  http://www.boost.org/LICENSE_1_0.txt).
]

[section:is_member_function_pointer is_member_function_pointer]
   template <class T>
   struct is_member_function_pointer : public __tof {};
  
__inherit If T is a (possibly cv-qualified) pointer to a member function
then inherits from __true_type, 
otherwise inherits from __false_type.

__std_ref 3.9.2 and 8.3.3.

__header ` #include <boost/type_traits/is_member_function_pointer.hpp>` or ` #include <boost/type_traits.hpp>`

__examples

[:`is_member_function_pointer<int (MyClass::*)(void)>` inherits from `__true_type`.]

[:`is_member_function_pointer<int (MyClass::*)(char)>::type` is the type `__true_type`.]

[:`is_member_function_pointer<int (MyClass::*)(void)const>::value` is an integral constant 
expression that evaluates to /true/.]

[:`is_member_function_pointer<int (MyClass::*)>::value` is an integral constant 
expression that evaluates to /false/: the argument in this case is a pointer to
a data member and not a member function, see __is_member_object_pointer
and __is_member_pointer]

[:`is_member_function_pointer<T>::value_type` is the type `bool`.]

[endsect]

