http://www.open-std.org/jtc1/s...1/docs/papers/2018/p0709r0.pdf
Ako procitate prethodno shvaticete da je sve ovo jednostavno resiti onako kako je to uradjeno u Rustu: uvodjenjem tagged unija.
Uz std::variant, std::optional te sad i ovoga, citava ova gimnastika postaje nepotrebna samo ako bi iskopriali malo od Rust-a ;)