成员变量检测类型特征 是否可以定义C++中的一个类型特性来检测一个类是否有任何成员变量?我希望能够检查一个类型是否是一个类并且没有成员变量 ,我看了一下type_traits的标题,但肯定没有看到。Thanks@dyp:我认为只检查非静态数据成员。我认为检

成员变量检测类型特征 是否可以定义C++中的一个类型特性来检测一个类是否有任何成员变量?我希望能够检查一个类型是否是一个类并且没有成员变量 ,我看了一下type_traits的标题,但肯定没有看到。Thanks@dyp:我认为只检查非静态数据成员。我认为检,c++,c++14,typetraits,C++,C++14,Typetraits,成员变量检测类型特征 是否可以定义C++中的一个类型特性来检测一个类是否有任何成员变量?我希望能够检查一个类型是否是一个类并且没有成员变量 ,我看了一下type_traits的标题,但肯定没有看到。Thanks@dyp:我认为只检查非静态数据成员。我认为检查是否缺少静态成员比较困难。如果T是多态的,那么使用sizeof(T)==sizeof(EmptyPolymorphicClass)来确定T是否有任何成员变量是一个好主意吗?@felix我猜这在sane平台上应该可以正常工作,但我认为一个疯狂的

成员变量检测类型特征

是否可以定义C++中的一个类型特性来检测一个类是否有任何成员变量?我希望能够检查一个类型是否是一个类并且没有成员变量

,我看了一下type_traits的标题,但肯定没有看到。Thanks@dyp:我认为只检查非静态数据成员。我认为检查是否缺少静态成员比较困难。如果
T
是多态的,那么使用
sizeof(T)==sizeof(EmptyPolymorphicClass)
来确定
T
是否有任何成员变量是一个好主意吗?@felix我猜这在sane平台上应该可以正常工作,但我认为一个疯狂的实现可以使用一个vptr加上几个字节来实现多态性。假设VPTR需要8字节对齐,而DS9K编译器的C++则添加了VPTR加上3字节的多态性。因为数组是连续的,所以类在多态性填充之后将有5个填充字节(以对齐下一个数组元素)。我想,编译器可以在这5个填充字节内存储一些数据成员。