I am looking for space efficient implementation of optional (sizeof small_optional<T> == sizeof (T)).
So the emptiness is encoded using some special value of T, for example
small_optional<int, -1>
requires that I never store -1 in the small_optional so -1 can be used as magic value to determine if optional is empty or not.