Давайте теперь попробуем реализовать вариантный тип, позволяющий хранить произвольные типы данных. При этом, для простых типов размером <=16 байт, хранение должно осуществляться в самом объекте. Во всех остальных случаях должен храниться указатель. При этом должна быть реализована логика работы "умных указателей".
Что значит произвольный тип данных? У тебя есть адрес ячейки, читай из неё и интерпретируй инфу, как тебе вздумается.