mirror of
https://github.com/boostorg/optional.git
synced 2025-07-15 21:32:17 +02:00
improved example in tutorial
This commit is contained in:
@ -88,12 +88,12 @@ Suppose we want to implement a ['lazy load] optimization. This is because we do
|
|||||||
|
|
||||||
class Widget
|
class Widget
|
||||||
{
|
{
|
||||||
boost::optional<Resource> resource_;
|
mutable boost::optional<const Resource> resource_;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Widget() {}
|
Widget() {}
|
||||||
|
|
||||||
Resource& getResource() // not thread-safe
|
const Resource& getResource() const // not thread-safe
|
||||||
{
|
{
|
||||||
if (resource_ == boost::none)
|
if (resource_ == boost::none)
|
||||||
resource_.emplace("resource", "arguments");
|
resource_.emplace("resource", "arguments");
|
||||||
|
@ -35,12 +35,12 @@
|
|||||||
</p>
|
</p>
|
||||||
<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">Widget</span>
|
<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">Widget</span>
|
||||||
<span class="special">{</span>
|
<span class="special">{</span>
|
||||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Resource</span><span class="special">></span> <span class="identifier">resource_</span><span class="special">;</span>
|
<span class="keyword">mutable</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">Resource</span><span class="special">></span> <span class="identifier">resource_</span><span class="special">;</span>
|
||||||
|
|
||||||
<span class="keyword">public</span><span class="special">:</span>
|
<span class="keyword">public</span><span class="special">:</span>
|
||||||
<span class="identifier">Widget</span><span class="special">()</span> <span class="special">{}</span>
|
<span class="identifier">Widget</span><span class="special">()</span> <span class="special">{}</span>
|
||||||
|
|
||||||
<span class="identifier">Resource</span><span class="special">&</span> <span class="identifier">getResource</span><span class="special">()</span> <span class="comment">// not thread-safe</span>
|
<span class="keyword">const</span> <span class="identifier">Resource</span><span class="special">&</span> <span class="identifier">getResource</span><span class="special">()</span> <span class="keyword">const</span> <span class="comment">// not thread-safe</span>
|
||||||
<span class="special">{</span>
|
<span class="special">{</span>
|
||||||
<span class="keyword">if</span> <span class="special">(</span><span class="identifier">resource_</span> <span class="special">==</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">none</span><span class="special">)</span>
|
<span class="keyword">if</span> <span class="special">(</span><span class="identifier">resource_</span> <span class="special">==</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">none</span><span class="special">)</span>
|
||||||
<span class="identifier">resource_</span><span class="special">.</span><span class="identifier">emplace</span><span class="special">(</span><span class="string">"resource"</span><span class="special">,</span> <span class="string">"arguments"</span><span class="special">);</span>
|
<span class="identifier">resource_</span><span class="special">.</span><span class="identifier">emplace</span><span class="special">(</span><span class="string">"resource"</span><span class="special">,</span> <span class="string">"arguments"</span><span class="special">);</span>
|
||||||
|
@ -129,7 +129,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||||
<td align="left"><p><small>Last revised: June 06, 2014 at 21:22:06 GMT</small></p></td>
|
<td align="left"><p><small>Last revised: June 06, 2014 at 21:50:26 GMT</small></p></td>
|
||||||
<td align="right"><div class="copyright-footer"></div></td>
|
<td align="right"><div class="copyright-footer"></div></td>
|
||||||
</tr></table>
|
</tr></table>
|
||||||
<hr>
|
<hr>
|
||||||
|
Reference in New Issue
Block a user