Spec-Zone.ru › C++

std::meta::is_member_function_pointer_type

Определено в заголовочном файле <meta>
consteval bool is_member_function_pointer_type( std::meta::info r );
(начиная с C++26)

Возвращает true, если r представляет тип — указатель на нестатическую функцию-член. В противном случае возвращает false.

Параметры

r - значение отражения

Возвращаемое значение

true, если r представляет тип указателя на функцию-член; в противном случае — false.

Исключения

Выбрасывает std::meta::exception, если r не представляет тип или псевдоним типа.

Пример

#include <meta>

struct A
{
    int m;
    inline static int n{};
    void f() {}
    static void g();
};

int main()
{
    int A::*mem_data_ptr = &A::m;     // a pointer to member data
    int* data_ptr = &A::n;            // a pointer to static member data
    void (A::*mem_fun_ptr)() = &A::f; // a pointer to member function
    void (*fun_ptr)() = &A::g;        // a pointer to static member function

    static_assert
    (""
        &&   is_member_function_pointer_type(^^decltype(mem_fun_ptr))
        && ! is_member_function_pointer_type(^^decltype(fun_ptr))
        && ! is_member_function_pointer_type(^^decltype(mem_data_ptr))
        && ! is_member_function_pointer_type(^^decltype(data_ptr))
        && ! is_member_function_pointer_type(^^int (*)())
        && ! is_member_function_pointer_type(^^A const* volatile)
    );
}

См. также

is_member_pointer_type
(C++26)
проверяет, представляет ли отражение тип указателя на член
(функция)
is_member_object_pointer_type
(C++26)
проверяет, представляет ли отражение тип указателя на объект-член
(функция)
is_pointer_type
(C++26)
проверяет, является ли отражённый тип типом указателя
(функция)
is_member_pointer
(C++11)
проверяет, является ли тип указателем на нестатическую функцию-член или объект-член
(шаблон класса)
is_member_object_pointer
(C++11)
проверяет, является ли тип указателем на нестатический объект-член
(шаблон класса)
is_member_function_pointer
(C++11)
проверяет, является ли тип указателем на нестатическую функцию-член
(шаблон класса)
is_pointer
(C++11)
проверяет, является ли тип типом указателя
(шаблон класса)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/meta/is_member_function_pointer_type

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API