Ваше "Скопировано!"строка в выводе исходит из конструктора копирования, поэтому вы создаете три объекта, а не два (тогда вы уничтожаете все три, как и ожидалось).
Обратите внимание, что конструктор копирования обычно должен принимать егоаргумент const
ссылка.Возможно, вы используете компилятор Microsoft C ++, который привязывает временную ссылку к неконстантной ссылке.
Также обратите внимание, что если вы включите оптимизацию, вы, вероятно, сможете увидеть только два конструктора и двадеструкторы, без копирования конструкции не происходит.С достаточно новым (C ++ 17) компилятором это должно произойти, даже если вы не включаете оптимизацию (удаление копии стало обязательным).