Стандарт C ++ (раздел 8.5) гласит: Если программа вызывает инициализацию по умолчанию объекта типа T с определением const, T должен быть типом класса с конструктором по умолчанию, предоставляемым пользователем. Зачем? Я не могу придумать ни одной причины, по которой в этом случае требуется...