Конструкция «class{}Name;» вместо «class Name{};»?
class ClassName {
   //...
};
- создаёт описание класса, как тип, который вы можете в дальнейшем использовать; никакие объекты в коде при этом не создаются.class {
  //...
} ClassName;
- создаёт описание структуры анонимного (не именованного) класса и тут же создаёт объект с именем ClassName (поэтому имя очень неудачное, уместно было бы ObjName); поскольку класс не имеет имени, вы больше не сможете создать объектов такого класса ... разве что так:class {
  //...
} Obj1, Obj2, Obj3, ...;
Если я правильно понял ваш вопрос, то конструкция {  ... } ClassName создаст нам объект класса анонимного класса, а конструкция: { ... } StructName - соответственно переменную с анонимной структурой.