在 type_traits中有个is_Empty函数,用来判断一个class是否是空类
如: struct A {}; sizeof(A) = 1;
struct B : public A {int i}; sizeof(B) = 4
struct C {int i} sizeof(C) = 4
则if sizeof(C) == sizeof (B)则A为空
本文介绍了一种利用C++标准库type_traits中的is_Empty函数来检测一个类是否为空类的方法。通过比较继承前后类的大小,可以判断出基类是否为空类。此方法对于理解C++内存布局及类实现细节具有一定的帮助。
在 type_traits中有个is_Empty函数,用来判断一个class是否是空类
如: struct A {}; sizeof(A) = 1;
struct B : public A {int i}; sizeof(B) = 4
struct C {int i} sizeof(C) = 4
则if sizeof(C) == sizeof (B)则A为空
976
2104

被折叠的 条评论
为什么被折叠?