template <storage_class_e storage_class, typename E, typename... Ts>

struct storage_type

Storage type is either empty, holds an error, or holds a set of values. This

type is specialized for trivially and non-trivially destructible types. When

E and all of the elements of Ts are trivially destructible, this type

provides a trivial destructor, which is necessary for multi-register return

value optimization.