Primitive data types are the fastest, best supported types in the language. Many times I've wished to adapt some of them for particular use cases and had to pay the big cost of wrapping them, pure busy work.
Discussion of this item got promoted to its own article: vtable freeze.
One can program constructors, ..., to do whatever one pleases, however, if our programs can build at runtime an implementation for them, their non-setting introduces one level of indirection