This library allows the template parameter
to be of reference type:
T&, and to some extent,
However, since references are not real objects some restrictions apply and some operations are not available in this case:
Also, even though
treats it wrapped pseudo-object much as a real value, a true real reference
is stored so aliasing will ocurr:
optional<T&>will copy the references but all these references will nonetheless reefer to the same object.