#include <iostream>
using namespace std;
void testEmptyClass();
struct Empty {
};
struct DummyEmpty {
char a;
};
template<typename T>
struct EmptyHelper : T {
int group[256];
};
struct EmptyHelper2 {
int group[256];
};
template<typename T>
bool isEmptyClass() {
return sizeof(EmptyHelper2) == sizeof(EmptyHelper<T>); //if == , then is Empty
}
void testEmptyClass()
{
cout << "Empty sizeof = " << sizeof(Empty) << endl;
cout << "DummyEmpty sizeof = " << sizeof(DummyEmpty) << endl;
cout << "Empty is " << isEmptyClass<Empty>() << endl;
cout << "DummyEmpty is " << isEmptyClass<DummyEmpty>() << endl;
}
int main()
{
testEmptyClass();
}
![](https://img2018.cnblogs.com/blog/817161/201904/817161-20190407204405292-1513286079.png)