std::is_member_function_pointer (3) - Linux Manuals

std::is_member_function_pointer: std::is_member_function_pointer


std::is_member_function_pointer - std::is_member_function_pointer


Defined in header <type_traits>
template< class T > (since C++11)
struct is_member_function_pointer;

Checks whether T is a non-static member function pointer. Provides the member constant value which is equal to true, if T is a non-static member function pointer type. Otherwise, value is equal to false.

Template parameters

T - a type to check

Helper variable template

template< class T > (since C++17)
inline constexpr bool is_member_function_pointer_v = is_member_function_pointer<T>::value;

Inherited from std::integral_constant

Member constants

value true if T is a member function pointer type , false otherwise
         (public static member constant)

Member functions

              converts the object to bool, returns value
operator bool (public member function)

operator() returns value
              (public member function)

Member types

Type Definition
value_type bool
type std::integral_constant<bool, value>

Possible implementation

  template< class T >
  struct is_member_function_pointer_helper : std::false_type {};

  template< class T, class U>
  struct is_member_function_pointer_helper<T U::*> : std::is_function<T> {};

  template< class T >
  struct is_member_function_pointer : is_member_function_pointer_helper< std::remove_cv_t<T> > {};


// Run this code

  #include <type_traits>

  class A {
      void member() { }

  int main()
      // fails at compile time if A::member is a data member and not a function
                    "A::member is not a member function.");

See also

is_pointer checks if a type is a pointer type
                         (class template)

is_member_object_pointer checks if a type is a pointer to a non-static member object
                         (class template)

is_member_pointer checks if a type is a pointer to an non-static member function or object
                         (class template)