Sometimes a default-initialized value isn't really properly
initialized. In most cases these are handled with assertions, but...
what if we could annotate our code to allow the compiler to detect
cases where "uninitialized" user-defined types get used.
Enter yolo, woot and kaboom!
(proper names pending)
The yolo attribute denotes a constructor as creating an
"uninitialized" variable.
The woot attribute appliest to member functions noting that they
initialize the base object.
The kaboom attribute applies to member functions noting that they
must have an initialized base object.
These additional annotations ensure that at least one woot function
must be called on an object initialized with a yolo constructor
before any kaboom functions can be called otherwise a diagnostic will
be issued via the standard -Wuninitialized diagnostics.