Для решения одной из задач появилось желание к штатным типам данных добавить еще одно состояние: undefined. Чтобы можно было бы передавать мессадж «Мы еще не определились», или «Используйте значение по умолчанию, нам без разницы какое».
В теории для передачи этого мессаджа можно было бы использовать shared_ptr и ставить его в NULL когда оно не нужно. Но это какой-то оверкил. Память резервировать-освобождать… И главное получается что мысль передается через не предназначенный для этого инструмент, а это плохо для понятности и выразительности кода.
Реализовать подобный тип через шаблоны я пожалуй могу. Но вот надо ли. Вдруг есть что-то более штатное, что умные люди уже сделали…