Initialization is translated to a copy construction even if in the syntax
type name = existing;
This line has the same effect as
type name(existing);