]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/optional/doc/html/boost_optional/reference/header__boost_optional_optional_hpp_/detailed_semantics___optional_references.html
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / optional / doc / html / boost_optional / reference / header__boost_optional_optional_hpp_ / detailed_semantics___optional_references.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>Detailed Semantics - Optional References</title>
5 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
7 <link rel="home" href="../../../index.html" title="Boost.Optional">
8 <link rel="up" href="../../../optional/reference/header__boost_optional_optional_hpp_.html" title="Header &lt;boost/optional/optional.hpp&gt;">
9 <link rel="prev" href="detailed_semantics___optional_values.html" title="Detailed Semantics - Optional Values">
10 <link rel="next" href="detailed_semantics___free_functions.html" title="Detailed Semantics - Free Functions">
11 </head>
12 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13 <table cellpadding="2" width="100%"><tr>
14 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
15 <td align="center"><a href="../../../../../../../index.html">Home</a></td>
16 <td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
17 <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18 <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19 <td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
20 </tr></table>
21 <hr>
22 <div class="spirit-nav">
23 <a accesskey="p" href="detailed_semantics___optional_values.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../optional/reference/header__boost_optional_optional_hpp_.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="detailed_semantics___free_functions.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
24 </div>
25 <div class="section">
26 <div class="titlepage"><div><div><h4 class="title">
27 <a name="boost_optional.reference.header__boost_optional_optional_hpp_.detailed_semantics___optional_references"></a><a class="link" href="detailed_semantics___optional_references.html" title="Detailed Semantics - Optional References">Detailed
28 Semantics - Optional References</a>
29 </h4></div></div></div>
30 <p>
31 <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
32 </p>
33 <a name="reference_optional_ref_default_ctor"></a><div class="blockquote"><blockquote class="blockquote"><p>
34 <code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="identifier">optional</span><span class="special">()</span>
35 <span class="keyword">noexcept</span><span class="special">;</span></code>
36 </p></blockquote></div>
37 <div class="blockquote"><blockquote class="blockquote"><p>
38 <code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="identifier">optional</span><span class="special">(</span><span class="identifier">none_t</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></code>
39 </p></blockquote></div>
40 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
41 <span class="bold"><strong>Postconditions:</strong></span> <code class="computeroutput"><span class="keyword">bool</span><span class="special">(*</span><span class="keyword">this</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">false</span></code>; <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> refers to nothing.
42 </li></ul></div>
43 <p>
44 <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
45 </p>
46 <a name="reference_optional_ref_value_ctor"></a><div class="blockquote"><blockquote class="blockquote"><p>
47 <code class="computeroutput"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">&gt;</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="identifier">optional</span><span class="special">(</span><span class="identifier">R</span><span class="special">&amp;&amp;</span> <span class="identifier">r</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></code>
48 </p></blockquote></div>
49 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
50 <li class="listitem">
51 <span class="bold"><strong>Postconditions:</strong></span> <code class="computeroutput"><span class="keyword">bool</span><span class="special">(*</span><span class="keyword">this</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">true</span></code>; <code class="computeroutput"><span class="identifier">addressof</span><span class="special">(**</span><span class="keyword">this</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">addressof</span><span class="special">(</span><span class="identifier">r</span><span class="special">)</span></code>.
52 </li>
53 <li class="listitem">
54 <span class="bold"><strong>Remarks:</strong></span> Unless <code class="computeroutput"><span class="identifier">R</span></code>
55 is an lvalue reference, the program is ill-formed. This constructor
56 does not participate in overload resolution if <code class="computeroutput"><span class="identifier">decay</span><span class="special">&lt;</span><span class="identifier">R</span><span class="special">&gt;</span></code> is an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span></code>.
57 </li>
58 <li class="listitem">
59 <span class="bold"><strong>Notes:</strong></span> This constructor is declared
60 <code class="computeroutput"><span class="keyword">explicit</span></code> on compilers
61 that do not correctly suport binding to const lvalues of integral types.
62 For more details <a class="link" href="../../dependencies_and_portability/optional_reference_binding.html#optional_reference_binding">see here</a>.
63 </li>
64 <li class="listitem">
65 <span class="bold"><strong>Example:</strong></span>
66 <pre class="programlisting"><span class="identifier">T</span> <span class="identifier">v</span><span class="special">;</span>
67 <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">vref</span> <span class="special">=</span> <span class="identifier">v</span> <span class="special">;</span>
68 <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;</span> <span class="identifier">opt</span><span class="special">(</span><span class="identifier">vref</span><span class="special">);</span>
69 <span class="identifier">assert</span> <span class="special">(</span> <span class="special">*</span><span class="identifier">opt</span> <span class="special">==</span> <span class="identifier">v</span> <span class="special">)</span> <span class="special">;</span>
70 <span class="special">++</span> <span class="identifier">v</span> <span class="special">;</span> <span class="comment">// mutate referee</span>
71 <span class="identifier">assert</span> <span class="special">(*</span><span class="identifier">opt</span> <span class="special">==</span> <span class="identifier">v</span><span class="special">);</span>
72 </pre>
73 </li>
74 </ul></div>
75 <p>
76 <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
77 </p>
78 <a name="reference_optional_ref_cond_value_ctor"></a><div class="blockquote"><blockquote class="blockquote"><p>
79 <code class="computeroutput"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">&gt;</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="identifier">optional</span><span class="special">(</span><span class="keyword">bool</span> <span class="identifier">cond</span><span class="special">,</span> <span class="identifier">R</span><span class="special">&amp;&amp;</span>
80 <span class="identifier">r</span><span class="special">)</span>
81 <span class="keyword">noexcept</span><span class="special">;</span></code>
82 </p></blockquote></div>
83 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
84 <li class="listitem">
85 <span class="bold"><strong>Effects: </strong></span> Initializes <code class="computeroutput"><span class="identifier">ref</span></code> with expression <code class="computeroutput"><span class="identifier">cond</span> <span class="special">?</span>
86 <span class="identifier">addressof</span><span class="special">(</span><span class="identifier">r</span><span class="special">)</span> <span class="special">:</span> <span class="keyword">nullptr</span></code>.
87 </li>
88 <li class="listitem">
89 <span class="bold"><strong>Postconditions:</strong></span> <code class="computeroutput"><span class="keyword">bool</span><span class="special">(*</span><span class="keyword">this</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">cond</span></code>; If <code class="computeroutput"><span class="keyword">bool</span><span class="special">(*</span><span class="keyword">this</span><span class="special">)</span></code>, <code class="computeroutput"><span class="identifier">addressof</span><span class="special">(**</span><span class="keyword">this</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">addressof</span><span class="special">(</span><span class="identifier">r</span><span class="special">)</span></code>.
90 </li>
91 <li class="listitem">
92 <span class="bold"><strong>Remarks:</strong></span> Unless <code class="computeroutput"><span class="identifier">R</span></code>
93 is an lvalue reference, the program is ill-formed. This constructor
94 does not participate in overload resolution if <code class="computeroutput"><span class="identifier">decay</span><span class="special">&lt;</span><span class="identifier">R</span><span class="special">&gt;</span></code> is an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span></code>.
95 </li>
96 </ul></div>
97 <p>
98 <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
99 </p>
100 <a name="reference_optional_ref_copy_ctor"></a><div class="blockquote"><blockquote class="blockquote"><p>
101 <code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="identifier">optional</span> <span class="special">(</span>
102 <span class="identifier">optional</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span>
103 <span class="special">)</span> <span class="keyword">noexcept</span>
104 <span class="special">;</span></code>
105 </p></blockquote></div>
106 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
107 <li class="listitem">
108 <span class="bold"><strong>Effects: </strong></span> Initializes <code class="computeroutput"><span class="identifier">ref</span></code> with expression <code class="computeroutput"><span class="identifier">rhs</span><span class="special">.</span><span class="identifier">ref</span></code>.
109 </li>
110 <li class="listitem">
111 <span class="bold"><strong>Postconditions:</strong></span> <code class="computeroutput"><span class="keyword">bool</span><span class="special">(*</span><span class="keyword">this</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">bool</span><span class="special">(</span><span class="identifier">rhs</span><span class="special">)</span></code>.
112 </li>
113 <li class="listitem">
114 <span class="bold"><strong>Example:</strong></span>
115 <pre class="programlisting"><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;</span> <span class="identifier">uninit</span> <span class="special">;</span>
116 <span class="identifier">assert</span> <span class="special">(!</span><span class="identifier">uninit</span><span class="special">);</span>
117
118 <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;</span> <span class="identifier">uinit2</span> <span class="special">(</span> <span class="identifier">uninit</span> <span class="special">)</span> <span class="special">;</span>
119 <span class="identifier">assert</span> <span class="special">(</span> <span class="identifier">uninit2</span> <span class="special">==</span> <span class="identifier">uninit</span> <span class="special">);</span>
120
121 <span class="identifier">T</span> <span class="identifier">v</span> <span class="special">=</span> <span class="number">2</span> <span class="special">;</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">ref</span> <span class="special">=</span> <span class="identifier">v</span> <span class="special">;</span>
122 <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">init</span><span class="special">(</span><span class="identifier">ref</span><span class="special">);</span>
123 <span class="identifier">assert</span> <span class="special">(</span> <span class="special">*</span><span class="identifier">init</span> <span class="special">==</span> <span class="identifier">v</span> <span class="special">)</span> <span class="special">;</span>
124
125 <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">init2</span> <span class="special">(</span> <span class="identifier">init</span> <span class="special">)</span> <span class="special">;</span>
126 <span class="identifier">assert</span> <span class="special">(</span> <span class="special">*</span><span class="identifier">init2</span> <span class="special">==</span> <span class="identifier">v</span> <span class="special">)</span> <span class="special">;</span>
127
128 <span class="identifier">v</span> <span class="special">=</span> <span class="number">3</span> <span class="special">;</span>
129
130 <span class="identifier">assert</span> <span class="special">(</span> <span class="special">*</span><span class="identifier">init</span> <span class="special">==</span> <span class="number">3</span> <span class="special">)</span> <span class="special">;</span>
131 <span class="identifier">assert</span> <span class="special">(</span> <span class="special">*</span><span class="identifier">init2</span> <span class="special">==</span> <span class="number">3</span> <span class="special">)</span> <span class="special">;</span>
132 </pre>
133 </li>
134 </ul></div>
135 <p>
136 <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
137 </p>
138 <a name="reference_optional_ref_ctor_from_opt_U"></a><div class="blockquote"><blockquote class="blockquote"><p>
139 <code class="computeroutput"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span> <span class="keyword">explicit</span>
140 <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="identifier">optional</span> <span class="special">(</span>
141 <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&amp;&gt;</span>
142 <span class="keyword">const</span><span class="special">&amp;</span>
143 <span class="identifier">rhs</span> <span class="special">)</span>
144 <span class="keyword">noexcept</span> <span class="special">;</span></code>
145 </p></blockquote></div>
146 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
147 <li class="listitem">
148 <span class="bold"><strong>Requires:</strong></span> <code class="computeroutput"><span class="identifier">is_convertible</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&amp;,</span> <span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="identifier">value</span></code>
149 is <code class="computeroutput"><span class="keyword">true</span></code>.
150 </li>
151 <li class="listitem">
152 <span class="bold"><strong>Effects: </strong></span> Initializes <code class="computeroutput"><span class="identifier">ref</span></code> with expression <code class="computeroutput"><span class="identifier">rhs</span><span class="special">.</span><span class="identifier">ref</span></code>.
153 </li>
154 <li class="listitem">
155 <span class="bold"><strong>Postconditions:</strong></span> <code class="computeroutput"><span class="keyword">bool</span><span class="special">(*</span><span class="keyword">this</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">bool</span><span class="special">(</span><span class="identifier">rhs</span><span class="special">)</span></code>.
156 </li>
157 </ul></div>
158 <p>
159 <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
160 </p>
161 <a name="reference_optional_ref_assign_none_t"></a><div class="blockquote"><blockquote class="blockquote"><p>
162 <code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="keyword">operator</span><span class="special">=</span> <span class="special">(</span> <span class="identifier">none_t</span>
163 <span class="special">)</span> <span class="keyword">noexcept</span>
164 <span class="special">;</span></code>
165 </p></blockquote></div>
166 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
167 <li class="listitem">
168 <span class="bold"><strong>Effects: </strong></span> Assigns <code class="computeroutput"><span class="identifier">ref</span></code>
169 with expression <code class="computeroutput"><span class="keyword">nullptr</span></code>.
170 </li>
171 <li class="listitem">
172 <span class="bold"><strong>returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
173 </li>
174 <li class="listitem">
175 <span class="bold"><strong>Postconditions:</strong></span> <code class="computeroutput"><span class="keyword">bool</span><span class="special">(*</span><span class="keyword">this</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">false</span></code>.
176 </li>
177 </ul></div>
178 <a name="reference_optional_ref_copy_assign"></a><div class="blockquote"><blockquote class="blockquote"><p>
179 <code class="computeroutput"><span class="identifier">optional</span><span class="special">&amp;</span>
180 <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="keyword">operator</span><span class="special">=</span> <span class="special">(</span> <span class="identifier">optional</span>
181 <span class="keyword">const</span><span class="special">&amp;</span>
182 <span class="identifier">rhs</span> <span class="special">)</span>
183 <span class="keyword">noexcept</span> <span class="special">;</span></code>
184 </p></blockquote></div>
185 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
186 <li class="listitem">
187 <span class="bold"><strong>Effects: </strong></span> Assigns <code class="computeroutput"><span class="identifier">ref</span></code>
188 with expression <code class="computeroutput"><span class="identifier">rhs</span><span class="special">.</span><span class="identifier">ref</span></code>.
189 </li>
190 <li class="listitem">
191 <span class="bold"><strong>returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
192 </li>
193 <li class="listitem">
194 <span class="bold"><strong>Postconditions:</strong></span> <code class="computeroutput"><span class="keyword">bool</span><span class="special">(*</span><span class="keyword">this</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">bool</span><span class="special">(</span><span class="identifier">rhs</span><span class="special">)</span></code>.
195 </li>
196 <li class="listitem">
197 <span class="bold"><strong>Notes:</strong></span> This behaviour is called <span class="emphasis"><em>rebinding
198 semantics</em></span>. See <a class="link" href="../../tutorial/optional_references/rebinding_semantics_for_assignment_of_optional_references.html" title="Rebinding semantics for assignment of optional references">here</a>
199 for details.
200 </li>
201 <li class="listitem">
202 <span class="bold"><strong>Example:</strong></span>
203 <pre class="programlisting"><span class="keyword">int</span> <span class="identifier">a</span> <span class="special">=</span> <span class="number">1</span> <span class="special">;</span>
204 <span class="keyword">int</span> <span class="identifier">b</span> <span class="special">=</span> <span class="number">2</span> <span class="special">;</span>
205 <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">ra</span> <span class="special">=</span> <span class="identifier">a</span> <span class="special">;</span>
206 <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">rb</span> <span class="special">=</span> <span class="identifier">b</span> <span class="special">;</span>
207 <span class="identifier">optional</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&amp;&gt;</span> <span class="identifier">def</span> <span class="special">;</span>
208 <span class="identifier">optional</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&amp;&gt;</span> <span class="identifier">ora</span><span class="special">(</span><span class="identifier">ra</span><span class="special">)</span> <span class="special">;</span>
209 <span class="identifier">optional</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&amp;&gt;</span> <span class="identifier">orb</span><span class="special">(</span><span class="identifier">rb</span><span class="special">)</span> <span class="special">;</span>
210
211 <span class="identifier">def</span> <span class="special">=</span> <span class="identifier">orb</span> <span class="special">;</span> <span class="comment">// binds 'def' to 'b' through 'rb' wrapped within 'orb'</span>
212 <span class="identifier">assert</span> <span class="special">(</span> <span class="special">*</span><span class="identifier">def</span> <span class="special">==</span> <span class="identifier">b</span> <span class="special">)</span> <span class="special">;</span>
213 <span class="special">*</span><span class="identifier">def</span> <span class="special">=</span> <span class="identifier">ora</span> <span class="special">;</span> <span class="comment">// changes the value of 'b' to a copy of the value of 'a'</span>
214 <span class="identifier">assert</span> <span class="special">(</span> <span class="identifier">b</span> <span class="special">==</span> <span class="identifier">a</span> <span class="special">)</span> <span class="special">;</span>
215 <span class="keyword">int</span> <span class="identifier">c</span> <span class="special">=</span> <span class="number">3</span><span class="special">;</span>
216 <span class="keyword">int</span><span class="special">&amp;</span> <span class="identifier">rc</span> <span class="special">=</span> <span class="identifier">c</span> <span class="special">;</span>
217 <span class="identifier">optional</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&amp;&gt;</span> <span class="identifier">orc</span><span class="special">(</span><span class="identifier">rc</span><span class="special">)</span> <span class="special">;</span>
218 <span class="identifier">ora</span> <span class="special">=</span> <span class="identifier">orc</span> <span class="special">;</span> <span class="comment">// REBINDS ora to 'c' through 'rc'</span>
219 <span class="identifier">c</span> <span class="special">=</span> <span class="number">4</span> <span class="special">;</span>
220 <span class="identifier">assert</span> <span class="special">(</span> <span class="special">*</span><span class="identifier">ora</span> <span class="special">==</span> <span class="number">4</span> <span class="special">)</span> <span class="special">;</span>
221 </pre>
222 </li>
223 </ul></div>
224 <a name="reference_optional_ref_assign_optional_U"></a><div class="blockquote"><blockquote class="blockquote"><p>
225 <code class="computeroutput"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span> <span class="identifier">optional</span><span class="special">&amp;</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="keyword">operator</span><span class="special">=</span> <span class="special">(</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&amp;&gt;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">rhs</span>
226 <span class="special">)</span> <span class="keyword">noexcept</span>
227 <span class="special">;</span></code>
228 </p></blockquote></div>
229 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
230 <li class="listitem">
231 <span class="bold"><strong>Requires:</strong></span> <code class="computeroutput"><span class="identifier">is_convertible</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&amp;,</span> <span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="identifier">value</span></code>
232 is <code class="computeroutput"><span class="keyword">true</span></code>.
233 </li>
234 <li class="listitem">
235 <span class="bold"><strong>Effects: </strong></span> Assigns <code class="computeroutput"><span class="identifier">ref</span></code>
236 with expression <code class="computeroutput"><span class="identifier">rhs</span><span class="special">.</span><span class="identifier">ref</span></code>.
237 </li>
238 <li class="listitem">
239 <span class="bold"><strong>returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
240 </li>
241 <li class="listitem">
242 <span class="bold"><strong>Postconditions:</strong></span> <code class="computeroutput"><span class="keyword">bool</span><span class="special">(*</span><span class="keyword">this</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">bool</span><span class="special">(</span><span class="identifier">rhs</span><span class="special">)</span></code>.
243 </li>
244 </ul></div>
245 <p>
246 <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
247 </p>
248 <a name="reference_optional_ref_assign_R"></a><div class="blockquote"><blockquote class="blockquote"><p>
249 <code class="computeroutput"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">&gt;</span> <span class="identifier">optional</span><span class="special">&amp;</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="keyword">operator</span><span class="special">=</span> <span class="special">(</span> <span class="identifier">R</span><span class="special">&amp;&amp;</span> <span class="identifier">r</span>
250 <span class="special">)</span> <span class="keyword">noexcept</span>
251 <span class="special">;</span></code>
252 </p></blockquote></div>
253 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
254 <li class="listitem">
255 <span class="bold"><strong>Effects: </strong></span> Assigns <code class="computeroutput"><span class="identifier">ref</span></code>
256 with expression <code class="computeroutput"><span class="identifier">r</span></code>.
257 </li>
258 <li class="listitem">
259 <span class="bold"><strong>returns:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
260 </li>
261 <li class="listitem">
262 <span class="bold"><strong>Postconditions:</strong></span> <code class="computeroutput"><span class="keyword">bool</span><span class="special">(*</span><span class="keyword">this</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">true</span></code>.
263 </li>
264 <li class="listitem">
265 <span class="bold"><strong>Remarks:</strong></span> Unless <code class="computeroutput"><span class="identifier">R</span></code>
266 is an lvalue reference, the program is ill-formed. This function does
267 not participate in overload resolution if <code class="computeroutput"><span class="identifier">decay</span><span class="special">&lt;</span><span class="identifier">R</span><span class="special">&gt;</span></code> is an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span></code>.
268 </li>
269 <li class="listitem">
270 <span class="bold"><strong>Example:</strong></span>
271 <pre class="programlisting"><span class="keyword">int</span> <span class="identifier">a</span> <span class="special">=</span> <span class="number">1</span> <span class="special">;</span>
272 <span class="keyword">int</span> <span class="identifier">b</span> <span class="special">=</span> <span class="number">2</span> <span class="special">;</span>
273 <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">ra</span> <span class="special">=</span> <span class="identifier">a</span> <span class="special">;</span>
274 <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">rb</span> <span class="special">=</span> <span class="identifier">b</span> <span class="special">;</span>
275 <span class="identifier">optional</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&amp;&gt;</span> <span class="identifier">def</span> <span class="special">;</span>
276 <span class="identifier">optional</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&amp;&gt;</span> <span class="identifier">opt</span><span class="special">(</span><span class="identifier">ra</span><span class="special">)</span> <span class="special">;</span>
277
278 <span class="identifier">def</span> <span class="special">=</span> <span class="identifier">rb</span> <span class="special">;</span> <span class="comment">// binds 'def' to 'b' through 'rb'</span>
279 <span class="identifier">assert</span> <span class="special">(</span> <span class="special">*</span><span class="identifier">def</span> <span class="special">==</span> <span class="identifier">b</span> <span class="special">)</span> <span class="special">;</span>
280 <span class="special">*</span><span class="identifier">def</span> <span class="special">=</span> <span class="identifier">a</span> <span class="special">;</span> <span class="comment">// changes the value of 'b' to a copy of the value of 'a'</span>
281 <span class="identifier">assert</span> <span class="special">(</span> <span class="identifier">b</span> <span class="special">==</span> <span class="identifier">a</span> <span class="special">)</span> <span class="special">;</span>
282 <span class="keyword">int</span> <span class="identifier">c</span> <span class="special">=</span> <span class="number">3</span><span class="special">;</span>
283 <span class="keyword">int</span><span class="special">&amp;</span> <span class="identifier">rc</span> <span class="special">=</span> <span class="identifier">c</span> <span class="special">;</span>
284 <span class="identifier">opt</span> <span class="special">=</span> <span class="identifier">rc</span> <span class="special">;</span> <span class="comment">// REBINDS to 'c' through 'rc'</span>
285 <span class="identifier">c</span> <span class="special">=</span> <span class="number">4</span> <span class="special">;</span>
286 <span class="identifier">assert</span> <span class="special">(</span> <span class="special">*</span><span class="identifier">opt</span> <span class="special">==</span> <span class="number">4</span> <span class="special">)</span> <span class="special">;</span>
287 </pre>
288 </li>
289 </ul></div>
290 <p>
291 <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
292 </p>
293 <a name="reference_optional_ref_emplace_R"></a><div class="blockquote"><blockquote class="blockquote"><p>
294 <code class="computeroutput"><span class="keyword">void</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="identifier">emplace</span><span class="special">(</span> <span class="identifier">R</span><span class="special">&amp;&amp;</span> <span class="identifier">r</span>
295 <span class="special">)</span> <span class="keyword">noexcept</span>
296 <span class="special">;</span></code>
297 </p></blockquote></div>
298 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
299 <li class="listitem">
300 <span class="bold"><strong>Effects: </strong></span> Assigns <code class="computeroutput"><span class="identifier">ref</span></code>
301 with expression <code class="computeroutput"><span class="identifier">r</span></code>.
302 </li>
303 <li class="listitem">
304 <span class="bold"><strong>Postconditions:</strong></span> <code class="computeroutput"><span class="keyword">bool</span><span class="special">(*</span><span class="keyword">this</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">true</span></code>.
305 </li>
306 <li class="listitem">
307 <span class="bold"><strong>Remarks:</strong></span> Unless <code class="computeroutput"><span class="identifier">R</span></code>
308 is an lvalue reference, the program is ill-formed. This function does
309 not participate in overload resolution if <code class="computeroutput"><span class="identifier">decay</span><span class="special">&lt;</span><span class="identifier">R</span><span class="special">&gt;</span></code> is an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span></code>.
310 </li>
311 </ul></div>
312 <p>
313 <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
314 </p>
315 <a name="reference_optional_ref_get"></a><div class="blockquote"><blockquote class="blockquote"><p>
316 <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span>
317 <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="identifier">get</span><span class="special">()</span> <span class="keyword">const</span> <span class="special">;</span></code>
318 </p></blockquote></div>
319 <div class="blockquote"><blockquote class="blockquote"><p>
320 <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span>
321 <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="keyword">operator</span> <span class="special">*()</span>
322 <span class="keyword">const</span> <span class="special">;</span></code>
323 </p></blockquote></div>
324 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
325 <li class="listitem">
326 <span class="bold"><strong>Requires:</strong></span> <code class="computeroutput"><span class="keyword">bool</span><span class="special">(*</span><span class="keyword">this</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">true</span></code>.
327 </li>
328 <li class="listitem">
329 <span class="bold"><strong>Effects: </strong></span> Returns <code class="computeroutput"><span class="special">*</span><span class="identifier">ref</span></code>.
330 </li>
331 <li class="listitem">
332 <span class="bold"><strong>Throws: </strong></span> Nothing.
333 </li>
334 <li class="listitem">
335 <span class="bold"><strong>Example:</strong></span>
336 <pre class="programlisting"><span class="identifier">T</span> <span class="identifier">v</span> <span class="special">;</span>
337 <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">vref</span> <span class="special">=</span> <span class="identifier">v</span> <span class="special">;</span>
338 <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;</span> <span class="identifier">opt</span> <span class="special">(</span> <span class="identifier">vref</span> <span class="special">);</span>
339 <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">vref2</span> <span class="special">=</span> <span class="special">*</span><span class="identifier">opt</span><span class="special">;</span>
340 <span class="identifier">assert</span> <span class="special">(</span> <span class="identifier">vref2</span> <span class="special">==</span> <span class="identifier">v</span> <span class="special">)</span> <span class="special">;</span>
341 <span class="special">++</span> <span class="identifier">v</span> <span class="special">;</span>
342 <span class="identifier">assert</span> <span class="special">(</span> <span class="special">*</span><span class="identifier">opt</span> <span class="special">==</span> <span class="identifier">v</span> <span class="special">)</span> <span class="special">;</span>
343 </pre>
344 </li>
345 </ul></div>
346 <p>
347 <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
348 </p>
349 <a name="reference_optional_ref_arrow"></a><div class="blockquote"><blockquote class="blockquote"><p>
350 <code class="computeroutput"><span class="identifier">T</span><span class="special">*</span>
351 <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="keyword">operator</span> <span class="special">-&gt;</span>
352 <span class="special">()</span> <span class="keyword">const</span>
353 <span class="special">;</span></code>
354 </p></blockquote></div>
355 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
356 <li class="listitem">
357 <span class="bold"><strong>Requires:</strong></span> <code class="computeroutput"><span class="keyword">bool</span><span class="special">(*</span><span class="keyword">this</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">true</span></code>.
358 </li>
359 <li class="listitem">
360 <span class="bold"><strong>Effects: </strong></span> Returns <code class="computeroutput"><span class="identifier">ref</span></code>.
361 </li>
362 <li class="listitem">
363 <span class="bold"><strong>Throws: </strong></span> Nothing.
364 </li>
365 </ul></div>
366 <p>
367 <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
368 </p>
369 <a name="reference_optional_ref_value"></a><div class="blockquote"><blockquote class="blockquote"><p>
370 <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span>
371 <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="identifier">value</span><span class="special">()</span> <span class="keyword">const</span> <span class="special">;</span></code>
372 </p></blockquote></div>
373 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
374 <span class="bold"><strong>Effects:</strong></span> Equivalent to <code class="computeroutput"><span class="keyword">return</span> <span class="keyword">bool</span><span class="special">(*</span><span class="keyword">this</span><span class="special">)</span> <span class="special">?</span> <span class="special">*</span><span class="identifier">val</span> <span class="special">:</span> <span class="keyword">throw</span> <span class="identifier">bad_optional_access</span><span class="special">();</span></code>.
375 </li></ul></div>
376 <p>
377 <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
378 </p>
379 <a name="reference_optional_ref_value_or"></a><div class="blockquote"><blockquote class="blockquote"><p>
380 <code class="computeroutput"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">&gt;</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="identifier">value_or</span><span class="special">(</span> <span class="identifier">R</span><span class="special">&amp;&amp;</span> <span class="identifier">r</span>
381 <span class="special">)</span> <span class="keyword">const</span>
382 <span class="keyword">noexcept</span><span class="special">;</span></code>
383 </p></blockquote></div>
384 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
385 <li class="listitem">
386 <span class="bold"><strong>Effects:</strong></span> Equivalent to <code class="computeroutput"><span class="keyword">if</span> <span class="special">(*</span><span class="keyword">this</span><span class="special">)</span> <span class="keyword">return</span> <span class="special">**</span><span class="keyword">this</span><span class="special">;</span> <span class="keyword">else</span> <span class="keyword">return</span>
387 <span class="identifier">r</span><span class="special">;</span></code>.
388 </li>
389 <li class="listitem">
390 <span class="bold"><strong>Remarks:</strong></span> Unless <code class="computeroutput"><span class="identifier">R</span></code>
391 is an lvalue reference, the program is ill-formed.
392 </li>
393 </ul></div>
394 <p>
395 <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
396 </p>
397 <a name="reference_optional_ref_value_or_eval"></a><div class="blockquote"><blockquote class="blockquote"><p>
398 <code class="computeroutput"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">&gt;</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="identifier">value_or</span><span class="special">(</span> <span class="identifier">F</span> <span class="identifier">f</span> <span class="special">)</span> <span class="keyword">const</span> <span class="special">;</span></code>
399 </p></blockquote></div>
400 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
401 <li class="listitem">
402 <span class="bold"><strong>Effects:</strong></span> Equivalent to <code class="computeroutput"><span class="keyword">if</span> <span class="special">(*</span><span class="keyword">this</span><span class="special">)</span> <span class="keyword">return</span> <span class="special">**</span><span class="keyword">this</span><span class="special">;</span> <span class="keyword">else</span> <span class="keyword">return</span>
403 <span class="identifier">f</span><span class="special">();</span></code>.
404 </li>
405 <li class="listitem">
406 <span class="bold"><strong>Remarks:</strong></span> Unless <code class="computeroutput"><span class="keyword">decltype</span><span class="special">(</span><span class="identifier">f</span><span class="special">())</span></code> is an lvalue reference, the program
407 is ill-formed.
408 </li>
409 </ul></div>
410 <p>
411 <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
412 </p>
413 <a name="reference_optional_ref_get_ptr"></a><div class="blockquote"><blockquote class="blockquote"><p>
414 <code class="computeroutput"><span class="identifier">T</span><span class="special">*</span>
415 <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="identifier">get_ptr</span> <span class="special">()</span>
416 <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></code>
417 </p></blockquote></div>
418 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
419 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">ref</span></code>.
420 </li></ul></div>
421 <p>
422 <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
423 </p>
424 <a name="reference_optional_ref_operator_bool"></a><div class="blockquote"><blockquote class="blockquote"><p>
425 <code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="keyword">operator</span> <span class="keyword">bool</span>
426 <span class="special">()</span> <span class="keyword">const</span>
427 <span class="keyword">noexcept</span><span class="special">;</span></code>
428 </p></blockquote></div>
429 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
430 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="keyword">bool</span><span class="special">(</span><span class="identifier">ref</span><span class="special">)</span></code>.
431 </li></ul></div>
432 <p>
433 <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
434 </p>
435 <a name="reference_optional_ref_operator_not"></a><div class="blockquote"><blockquote class="blockquote"><p>
436 <code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="keyword">operator</span> <span class="special">!</span> <span class="special">()</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></code>
437 </p></blockquote></div>
438 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
439 <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">!</span><span class="keyword">bool</span><span class="special">(</span><span class="identifier">ref</span><span class="special">)</span></code>.
440 </li></ul></div>
441 <p>
442 <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
443 </p>
444 <a name="reference_optional_ref_reset"></a><div class="blockquote"><blockquote class="blockquote"><p>
445 <code class="computeroutput"><span class="keyword">void</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="identifier">reset</span><span class="special">()</span> <span class="keyword">noexcept</span><span class="special">;</span></code>
446 </p></blockquote></div>
447 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
448 <li class="listitem">
449 <span class="bold"><strong>Effects:</strong></span> Use <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span> <span class="special">=</span> <span class="identifier">none</span></code> instead.
450 </li>
451 <li class="listitem">
452 <span class="bold"><strong>Remarks:</strong></span> This function is depprecated.
453 </li>
454 </ul></div>
455 <p>
456 <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
457 </p>
458 <a name="reference_optional_ref_reset_value"></a><div class="blockquote"><blockquote class="blockquote"><p>
459 <code class="computeroutput"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">&gt;</span> <span class="keyword">void</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="identifier">reset</span> <span class="special">(</span> <span class="identifier">R</span><span class="special">&amp;&amp;</span>
460 <span class="identifier">r</span><span class="special">)</span>
461 <span class="keyword">noexcept</span><span class="special">;</span></code>
462 </p></blockquote></div>
463 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
464 <li class="listitem">
465 <span class="bold"><strong>Effects:</strong></span> Equivalent to <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">forward</span><span class="special">&lt;</span><span class="identifier">R</span><span class="special">&gt;(</span><span class="identifier">r</span><span class="special">)</span></code>.
466 </li>
467 <li class="listitem">
468 <span class="bold"><strong>Remarks:</strong></span> This function is depprecated.
469 </li>
470 </ul></div>
471 <p>
472 <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
473 </p>
474 <a name="reference_optional_ref_is_initialized"></a><div class="blockquote"><blockquote class="blockquote"><p>
475 <code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="identifier">is_initialized</span><span class="special">()</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></code>
476 </p></blockquote></div>
477 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
478 <li class="listitem">
479 <span class="bold"><strong>Effects:</strong></span> Equivalent to <code class="computeroutput"><span class="keyword">return</span> <span class="keyword">bool</span><span class="special">(*</span><span class="keyword">this</span><span class="special">)</span></code>.
480 </li>
481 <li class="listitem">
482 <span class="bold"><strong>Remarks:</strong></span> This function is depprecated.
483 </li>
484 </ul></div>
485 <p>
486 <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
487 </p>
488 <a name="reference_optional_ref_get_value_or_value"></a><div class="blockquote"><blockquote class="blockquote"><p>
489 <code class="computeroutput"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">&gt;</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;::</span><span class="identifier">get_value_or</span><span class="special">(</span> <span class="identifier">R</span><span class="special">&amp;&amp;</span> <span class="identifier">r</span>
490 <span class="special">)</span> <span class="keyword">const</span>
491 <span class="keyword">noexcept</span><span class="special">;</span></code>
492 </p></blockquote></div>
493 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
494 <li class="listitem">
495 <span class="bold"><strong>Effects:</strong></span> Equivalent to <code class="computeroutput"><span class="keyword">return</span> <span class="identifier">value_or</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">forward</span><span class="special">&lt;</span><span class="identifier">R</span><span class="special">&gt;(</span><span class="identifier">r</span><span class="special">);</span></code>.
496 </li>
497 <li class="listitem">
498 <span class="bold"><strong>Remarks:</strong></span> This function is depprecated.
499 </li>
500 </ul></div>
501 </div>
502 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
503 <td align="left"></td>
504 <td align="right"><div class="copyright-footer">Copyright &#169; 2003-2007 Fernando Luis Cacciola Carballal<br>Copyright &#169; 2014-2016 Andrzej Krzemie&#324;ski<p>
505 Distributed under the Boost Software License, Version 1.0. (See accompanying
506 file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
507 </p>
508 </div></td>
509 </tr></table>
510 <hr>
511 <div class="spirit-nav">
512 <a accesskey="p" href="detailed_semantics___optional_values.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../optional/reference/header__boost_optional_optional_hpp_.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="detailed_semantics___free_functions.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
513 </div>
514 </body>
515 </html>