This library allows the template parameter <codeclass="computeroutput"><spanclass="identifier">T</span></code>
to be of reference type: <codeclass="computeroutput"><spanclass="identifier">T</span><spanclass="special">&</span></code>, and to some extent, <codeclass="computeroutput"><spanclass="identifier">T</span>
However, since references are not real objects some restrictions apply and
some operations are not available in this case:
</p>
<divclass="itemizedlist"><ultype="disc">
<li>
Converting constructors
</li>
<li>
Converting assignment
</li>
<li>
InPlace construction
</li>
<li>
InPlace assignment
</li>
<li>
Value-access via pointer
</li>
</ul></div>
<p>
Also, even though <codeclass="computeroutput"><spanclass="identifier">optional</span><spanclass="special"><</span><spanclass="identifier">T</span><spanclass="special">&></span></code>
treats it wrapped pseudo-object much as a real value, a true real reference
is stored so aliasing will ocurr:
</p>
<divclass="itemizedlist"><ultype="disc">
<li>
Copies of <codeclass="computeroutput"><spanclass="identifier">optional</span><spanclass="special"><</span><spanclass="identifier">T</span><spanclass="special">&></span></code>
will copy the references but all these references will nonetheless reefer
to the same object.
</li>
<li>
Value-access will actually provide access to the referenced object rather