Чтобы иметь член объединения некоторого типа класса T
, специальные функции-члены T
(конструктор по умолчанию, конструктор копирования, оператор копирования и деструктор) должны быть тривиальными. То есть они должны быть теми, которые неявно объявлены и определены компилятором.
Ваша безымянная структура не имеет тривиального оператора присваивания копии (на самом деле, он вообще не имеет оператора присваивания), потому что имеет переменную-член, которая const
-квалифицирована, что подавляет генерацию неявно объявленного присвоения копии оператор.