Creating a new object within the storage that a const complete object
with static, thread, or automatic storage duration occupies,
or within the storage that such a const object used to occupy
before its lifetime ended, results in undefined behavior
.