C++中的std::is_member_pointer及示例

C++中的std::is_member_pointer及示例

C++ STL中的 std::is_member_pointer 模板存在于 < type_traits>头文件中。C++ STL中的 std::is_member_pointer 模板用于检查T是否是指向非静态成员的指针。如果 T 是指向非静态成员类型的指针,则返回布尔值true;否则返回false。

头文件:

#include <type_traits>

模板类:

template<class T>
struct is_member_pointer
    : std::integral_constant < bool,
    is_member_object_pointer<T>::value
    || is_member_function_pointer<T>::value> {};

语法:

std::is_member_pointer::value

参数: 模板 std::is_member_pointer 接受一个参数 T (Trait class) ,以检查 T 是否为指向非静态成员的指针。

返回值: 此模板将返回一个布尔变量,如下所示:

  • True: 如果类型 T 是指向非静态成员的指针。
  • False: 如果类型 T 不是指向非静态成员的指针。

以下是演示C/C++中 std::is_member_pointer模板 的程序:

程序:

// C++ program to illustrate
// std::is_member_pointer

#include <bits/stdc++.h>
#include <type_traits>

using namespace std;

// Driver code
int main()
{

    // Empty Class GFG
    class GFG {
    };

    // Check if GFG::* is a member
    // pointer or not
    bool a = is_member_pointer<int(GFG::*)>::value;
    if (a) {
        cout << "GFG::* is a Member Pointer!" << endl;
    }
    else {
        cout << "GFG::* is not a Member Pointer!" << endl;
    }

    // Check if int is a member
    // pointer or not
    a = is_member_pointer<int(int)>::value;
    if (a) {
        cout << "int is a Member Pointer!" << endl;
    }
    else {
        cout << "int is not a Member Pointer!" << endl;
    }

    return 0;
}
GFG::* is a Member Pointer!
int is not a Member Pointer!

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程