https://en.wikipedia.org/wiki/Object_slicing

"Slicing" is where you assign an object of a derived class to an instance of a base class
when a derived class object is passed by value as a BaseClass class object, the base class copy constructor is called.
the derived class object are sliced off, thereby losing part of the information - some of it is "sliced" away.

Между тем, упрощение могло бы быть отдельной операцией,
реализовываться специальной функцией, а не конструктором или оператором присваивания.
Тем более что при передаче по значению происходит копирование (то есть создаётся новый экземпляр структуры в памяти), то есть ни что не мешает сконструировать новый объект как угодно.