Purpose of empty Class

class A
{};

int main()
{
A a;
}

What is the purpose of such empty classes in C++?Why is it allowed in the language specification?

It is used as a place holder in the initial phase of development.
I think you should look at the C++ annotations for the more detailed explanation as to why the above class should be valid.

Check the below link for more detail...

http://www.cantrip.org/emptyopt.html