判断是否为指向类/结构体非静态数据成员变量的指针
#include <iostream>
#include <type_traits>
class A
{
public:
A()
{
a = 10;
}
A* create_obj_pointer()
{
return new A();
}
A create_object()
{
return A();
}
public:
int a;
};
struct B
{
int b;
};
int main()
{
std::cout << "This Demo: is_member_object_pointer " << std::endl;
int* a = new int;
*a = 10;
std::cout << "*a = " << (*a) << std::endl;
A obj_a;
A* obj_a_ptr = new A();
A* obj_b_ptr = &obj_a;
int A::* obj_data_a_ptr = &A::a;
if(std::is_member_object_pointer<int*>::value)
{
std::cout << __LINE__ << ": is member data pointer" << std::endl;
}
else
{
std::cout << __LINE__ << ": isn't member data pointer" << std::endl;