According to the Standard, empty classes in C++ have non-zero size. This requirement assures, that no two objects of empty classes have the same address. As it can be seen, support for empty classes in C++ is pretty elaborate and theres enough fuss for supporting such seemingly useless things like empty classes. What actually empty classes are good for and where they can be usable? Maybe there other points I'm missing - like design consistency?
This is rather theoretical question. Just to be exact, I'm not asking why empty classes should have non-zero size or how they can be of non-zero size.