Из недавнего проекта стандарта
11,6 [dcl.init] / 15
Инициализация, которая происходит в форме инициализатора скобок или равных
или условие (9.4), а также при передаче аргумента, возврате функции, вызове исключения (18.1), обработке исключения (18.3) и инициализации составного элемента (11.6.1) называется copy-initialization.
Итак, T x = T();
является примером инициализации копирования. Так же бросает исключение и многие другие случаи.
Что делает инициализация копирования, определено в других частях 11.6 (наряду с другими формами инициализации). Соответствующий раздел о значениях в инициализаторах:
11,6 [dcl.init] /17.6.1
Если выражение инициализатора является prvalue, а cv-неквалифицированная версия типа источника является тем же классом, что и класс назначения, выражение инициализатора используется для инициализации объекта назначения
это также известно как гарантированное исключение. Если выражение инициализатора является выражением prvalue соответствующего типа, выражение prvalue используется для непосредственного создания цели инициализации.