]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | <html> |
2 | <head> | |
3 | <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> | |
4 | <title>Detailed Semantics - Free Functions</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 <boost/optional/optional.hpp>"> | |
9 | <link rel="prev" href="detailed_semantics___optional_references.html" title="Detailed Semantics - Optional References"> | |
10 | <link rel="next" href="../header__boost_optional_hpp_.html" title="Header <boost/optional.hpp>"> | |
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_references.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="../header__boost_optional_hpp_.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___free_functions"></a><a class="link" href="detailed_semantics___free_functions.html" title="Detailed Semantics - Free Functions">Detailed | |
28 | Semantics - Free Functions</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_make_optional_value"></a><div class="blockquote"><blockquote class="blockquote"><p> | |
34 | <code class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">make_optional</span><span class="special">(</span> | |
35 | <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">v</span> <span class="special">)</span></code> | |
36 | </p></blockquote></div> | |
37 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | |
38 | <li class="listitem"> | |
39 | <span class="bold"><strong>Returns: </strong></span> <code class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">v</span><span class="special">)</span></code> for the <span class="emphasis"><em>deduced</em></span> | |
40 | type <code class="computeroutput"><span class="identifier">T</span></code> of <code class="computeroutput"><span class="identifier">v</span></code>. | |
41 | </li> | |
42 | <li class="listitem"> | |
43 | <span class="bold"><strong>Example:</strong></span> | |
44 | <pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">foo</span> <span class="special">(</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">opt</span> <span class="special">)</span> <span class="special">;</span> | |
45 | ||
46 | <span class="identifier">foo</span> <span class="special">(</span> <span class="identifier">make_optional</span><span class="special">(</span><span class="number">1</span><span class="special">+</span><span class="number">1</span><span class="special">)</span> <span class="special">)</span> <span class="special">;</span> <span class="comment">// Creates an optional<int></span> | |
47 | </pre> | |
48 | </li> | |
49 | </ul></div> | |
50 | <p> | |
51 | <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span> | |
52 | </p> | |
53 | <a name="reference_make_optional_bool_value"></a><div class="blockquote"><blockquote class="blockquote"><p> | |
54 | <code class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">make_optional</span><span class="special">(</span> | |
55 | <span class="keyword">bool</span> <span class="identifier">condition</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">v</span> <span class="special">)</span></code> | |
56 | </p></blockquote></div> | |
57 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | |
58 | <li class="listitem"> | |
59 | <span class="bold"><strong>Returns: </strong></span> <code class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">condition</span><span class="special">,</span> <span class="identifier">v</span><span class="special">)</span></code> for the <span class="emphasis"><em>deduced</em></span> | |
60 | type <code class="computeroutput"><span class="identifier">T</span></code> of <code class="computeroutput"><span class="identifier">v</span></code>. | |
61 | </li> | |
62 | <li class="listitem"> | |
63 | <span class="bold"><strong>Example:</strong></span> | |
64 | <pre class="programlisting"><span class="identifier">optional</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">calculate_foo</span><span class="special">()</span> | |
65 | <span class="special">{</span> | |
66 | <span class="keyword">double</span> <span class="identifier">val</span> <span class="special">=</span> <span class="identifier">compute_foo</span><span class="special">();</span> | |
67 | <span class="keyword">return</span> <span class="identifier">make_optional</span><span class="special">(</span><span class="identifier">is_not_nan_and_finite</span><span class="special">(</span><span class="identifier">val</span><span class="special">),</span><span class="identifier">val</span><span class="special">);</span> | |
68 | <span class="special">}</span> | |
69 | ||
70 | <span class="identifier">optional</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">v</span> <span class="special">=</span> <span class="identifier">calculate_foo</span><span class="special">();</span> | |
71 | <span class="keyword">if</span> <span class="special">(</span> <span class="special">!</span><span class="identifier">v</span> <span class="special">)</span> | |
72 | <span class="identifier">error</span><span class="special">(</span><span class="string">"foo wasn't computed"</span><span class="special">);</span> | |
73 | </pre> | |
74 | </li> | |
75 | </ul></div> | |
76 | <p> | |
77 | <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span> | |
78 | </p> | |
79 | <a name="reference_operator_compare_equal_optional_optional"></a><div class="blockquote"><blockquote class="blockquote"><p> | |
80 | <code class="computeroutput"><span class="keyword">bool</span> <span class="keyword">operator</span> | |
81 | <span class="special">==</span> <span class="special">(</span> | |
82 | <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">y</span> <span class="special">);</span></code> | |
83 | </p></blockquote></div> | |
84 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | |
85 | <li class="listitem"> | |
86 | <span class="bold"><strong>Requires:</strong></span> <code class="computeroutput"><span class="identifier">T</span></code> | |
87 | shall meet requirements of <a href="http://www.sgi.com/tech/stl/EqualityComparable.html" target="_top"><code class="computeroutput"><span class="identifier">EqualityComparable</span></code></a>. | |
88 | </li> | |
89 | <li class="listitem"> | |
90 | <span class="bold"><strong>Returns:</strong></span> If both <code class="computeroutput"><span class="identifier">x</span></code> | |
91 | and <code class="computeroutput"><span class="identifier">y</span></code> are initialized, | |
92 | <code class="computeroutput"><span class="special">(*</span><span class="identifier">x</span> | |
93 | <span class="special">==</span> <span class="special">*</span><span class="identifier">y</span><span class="special">)</span></code>. | |
94 | If only <code class="computeroutput"><span class="identifier">x</span></code> or <code class="computeroutput"><span class="identifier">y</span></code> is initialized, <code class="computeroutput"><span class="keyword">false</span></code>. | |
95 | If both are uninitialized, <code class="computeroutput"><span class="keyword">true</span></code>. | |
96 | </li> | |
97 | <li class="listitem"> | |
98 | <span class="bold"><strong>Notes:</strong></span> This definition guarantees | |
99 | that <code class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code> | |
100 | not containing a value is compared unequal to any <code class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code> containing any value, and equal | |
101 | to any other <code class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code> not containing a value. Pointers | |
102 | have shallow relational operators while <code class="computeroutput"><span class="identifier">optional</span></code> | |
103 | has deep relational operators. Do not use <code class="computeroutput"><span class="keyword">operator</span><span class="special">==</span></code> directly in generic code which expect | |
104 | to be given either an <code class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code> or a pointer; use <a href="../../../../../../utility/OptionalPointee.html#equal" target="_top"><code class="computeroutput"><span class="identifier">equal_pointees</span><span class="special">()</span></code></a> | |
105 | instead | |
106 | </li> | |
107 | <li class="listitem"> | |
108 | <span class="bold"><strong>Example:</strong></span> | |
109 | <pre class="programlisting"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">oN</span><span class="special">,</span> <span class="identifier">oN_</span><span class="special">;</span> | |
110 | <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">o1</span><span class="special">(</span><span class="identifier">T</span><span class="special">(</span><span class="number">1</span><span class="special">)),</span> <span class="identifier">o1_</span><span class="special">(</span><span class="identifier">T</span><span class="special">(</span><span class="number">1</span><span class="special">));</span> | |
111 | <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">o2</span><span class="special">(</span><span class="identifier">T</span><span class="special">(</span><span class="number">2</span><span class="special">));</span> | |
112 | ||
113 | <span class="identifier">assert</span> <span class="special">(</span> <span class="identifier">oN</span> <span class="special">==</span> <span class="identifier">oN</span> <span class="special">);</span> <span class="comment">// Identity implies equality</span> | |
114 | <span class="identifier">assert</span> <span class="special">(</span> <span class="identifier">o1</span> <span class="special">==</span> <span class="identifier">o1</span> <span class="special">);</span> <span class="comment">//</span> | |
115 | ||
116 | <span class="identifier">assert</span> <span class="special">(</span> <span class="identifier">oN</span> <span class="special">==</span> <span class="identifier">oN_</span> <span class="special">);</span> <span class="comment">// Both uninitialized compare equal</span> | |
117 | ||
118 | <span class="identifier">assert</span> <span class="special">(</span> <span class="identifier">oN</span> <span class="special">!=</span> <span class="identifier">o1</span> <span class="special">);</span> <span class="comment">// Initialized unequal to initialized.</span> | |
119 | ||
120 | <span class="identifier">assert</span> <span class="special">(</span> <span class="identifier">o1</span> <span class="special">==</span> <span class="identifier">o1_</span> <span class="special">);</span> <span class="comment">// Both initialized compare as (*lhs == *rhs)</span> | |
121 | <span class="identifier">assert</span> <span class="special">(</span> <span class="identifier">o1</span> <span class="special">!=</span> <span class="identifier">o2</span> <span class="special">);</span> <span class="comment">//</span> | |
122 | </pre> | |
123 | </li> | |
124 | </ul></div> | |
125 | <p> | |
126 | <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span> | |
127 | </p> | |
128 | <a name="reference_operator_compare_less_optional_optional"></a><div class="blockquote"><blockquote class="blockquote"><p> | |
129 | <code class="computeroutput"><span class="keyword">bool</span> <span class="keyword">operator</span> | |
130 | <span class="special"><</span> <span class="special">(</span> | |
131 | <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">y</span> <span class="special">);</span></code> | |
132 | </p></blockquote></div> | |
133 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | |
134 | <li class="listitem"> | |
135 | <span class="bold"><strong>Requires:</strong></span> Expression <code class="computeroutput"><span class="special">*</span><span class="identifier">x</span> <span class="special"><</span> <span class="special">*</span><span class="identifier">y</span></code> shall be well-formed and its result | |
136 | shall be convertible to <code class="computeroutput"><span class="keyword">bool</span></code>. | |
137 | </li> | |
138 | <li class="listitem"> | |
139 | <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">(!</span><span class="identifier">y</span><span class="special">)</span> <span class="special">?</span> <span class="keyword">false</span> <span class="special">:</span> <span class="special">(!</span><span class="identifier">x</span><span class="special">)</span> <span class="special">?</span> <span class="keyword">true</span> <span class="special">:</span> <span class="special">*</span><span class="identifier">x</span> <span class="special"><</span> | |
140 | <span class="special">*</span><span class="identifier">y</span></code>. | |
141 | </li> | |
142 | <li class="listitem"> | |
143 | <span class="bold"><strong>Notes:</strong></span> This definition guarantees | |
144 | that <code class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code> | |
145 | not containing a value is ordered as less than any <code class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code> containing any value, and equivalent | |
146 | to any other <code class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code> not containing a value. Pointers | |
147 | have shallow relational operators while <code class="computeroutput"><span class="identifier">optional</span></code> | |
148 | has deep relational operators. Do not use <code class="computeroutput"><span class="keyword">operator</span><span class="special"><</span></code> directly in generic code which | |
149 | expect to be given either an <code class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code> or a pointer; use <a href="../../../../../../utility/OptionalPointee.html#less" target="_top"><code class="computeroutput"><span class="identifier">less_pointees</span><span class="special">()</span></code></a> | |
150 | instead. <code class="computeroutput"><span class="identifier">T</span></code> need not | |
151 | be <a href="http://www.sgi.com/tech/stl/LessThanComparable.html" target="_top"><code class="computeroutput"><span class="identifier">LessThanComparable</span></code></a>. Only | |
152 | single <code class="computeroutput"><span class="keyword">operator</span><span class="special"><</span></code> | |
153 | is required. Other relational operations are defined in terms of this | |
154 | one. If <code class="computeroutput"><span class="identifier">T</span></code>'s <code class="computeroutput"><span class="keyword">operator</span><span class="special"><</span></code> | |
155 | satisfies the axioms of <a href="http://www.sgi.com/tech/stl/LessThanComparable.html" target="_top"><code class="computeroutput"><span class="identifier">LessThanComparable</span></code></a> (transitivity, | |
156 | antisymmetry and irreflexivity), <code class="computeroutput"><span class="identifier">optinal</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code> is <a href="http://www.sgi.com/tech/stl/LessThanComparable.html" target="_top"><code class="computeroutput"><span class="identifier">LessThanComparable</span></code></a>. | |
157 | </li> | |
158 | <li class="listitem"> | |
159 | <span class="bold"><strong>Example:</strong></span> | |
160 | <pre class="programlisting"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">oN</span><span class="special">,</span> <span class="identifier">oN_</span><span class="special">;</span> | |
161 | <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">o0</span><span class="special">(</span><span class="identifier">T</span><span class="special">(</span><span class="number">0</span><span class="special">));</span> | |
162 | <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">o1</span><span class="special">(</span><span class="identifier">T</span><span class="special">(</span><span class="number">1</span><span class="special">));</span> | |
163 | ||
164 | <span class="identifier">assert</span> <span class="special">(</span> <span class="special">!(</span><span class="identifier">oN</span> <span class="special"><</span> <span class="identifier">oN</span><span class="special">)</span> <span class="special">);</span> <span class="comment">// Identity implies equivalence</span> | |
165 | <span class="identifier">assert</span> <span class="special">(</span> <span class="special">!(</span><span class="identifier">o1</span> <span class="special"><</span> <span class="identifier">o1</span><span class="special">)</span> <span class="special">);</span> | |
166 | ||
167 | <span class="identifier">assert</span> <span class="special">(</span> <span class="special">!(</span><span class="identifier">oN</span> <span class="special"><</span> <span class="identifier">oN_</span><span class="special">)</span> <span class="special">);</span> <span class="comment">// Two uninitialized are equivalent</span> | |
168 | <span class="identifier">assert</span> <span class="special">(</span> <span class="special">!(</span><span class="identifier">oN_</span> <span class="special"><</span> <span class="identifier">oN</span><span class="special">)</span> <span class="special">);</span> | |
169 | ||
170 | <span class="identifier">assert</span> <span class="special">(</span> <span class="identifier">oN</span> <span class="special"><</span> <span class="identifier">o0</span> <span class="special">);</span> <span class="comment">// Uninitialized is less than initialized</span> | |
171 | <span class="identifier">assert</span> <span class="special">(</span> <span class="special">!(</span><span class="identifier">o0</span> <span class="special"><</span> <span class="identifier">oN</span><span class="special">)</span> <span class="special">);</span> | |
172 | ||
173 | <span class="identifier">assert</span> <span class="special">(</span> <span class="identifier">o1</span> <span class="special"><</span> <span class="identifier">o2</span> <span class="special">)</span> <span class="special">;</span> <span class="comment">// Two initialized compare as (*lhs < *rhs)</span> | |
174 | <span class="identifier">assert</span> <span class="special">(</span> <span class="special">!(</span><span class="identifier">o2</span> <span class="special"><</span> <span class="identifier">o1</span><span class="special">)</span> <span class="special">)</span> <span class="special">;</span> | |
175 | <span class="identifier">assert</span> <span class="special">(</span> <span class="special">!(</span><span class="identifier">o2</span> <span class="special"><</span> <span class="identifier">o2</span><span class="special">)</span> <span class="special">)</span> <span class="special">;</span> | |
176 | </pre> | |
177 | </li> | |
178 | </ul></div> | |
179 | <p> | |
180 | <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span> | |
181 | </p> | |
182 | <a name="reference_operator_compare_not_equal_optional_optional"></a><div class="blockquote"><blockquote class="blockquote"><p> | |
183 | <code class="computeroutput"><span class="keyword">bool</span> <span class="keyword">operator</span> | |
184 | <span class="special">!=</span> <span class="special">(</span> | |
185 | <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">y</span> <span class="special">);</span></code> | |
186 | </p></blockquote></div> | |
187 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> | |
188 | <span class="bold"><strong>Returns: </strong></span> <code class="computeroutput"><span class="special">!(</span> | |
189 | <span class="identifier">x</span> <span class="special">==</span> | |
190 | <span class="identifier">y</span> <span class="special">);</span></code> | |
191 | </li></ul></div> | |
192 | <p> | |
193 | <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span> | |
194 | </p> | |
195 | <a name="reference_operator_compare_greater_optional_optional"></a><div class="blockquote"><blockquote class="blockquote"><p> | |
196 | <code class="computeroutput"><span class="keyword">bool</span> <span class="keyword">operator</span> | |
197 | <span class="special">></span> <span class="special">(</span> | |
198 | <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">y</span> <span class="special">);</span></code> | |
199 | </p></blockquote></div> | |
200 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> | |
201 | <span class="bold"><strong>Returns: </strong></span> <code class="computeroutput"><span class="special">(</span> | |
202 | <span class="identifier">y</span> <span class="special"><</span> | |
203 | <span class="identifier">x</span> <span class="special">);</span></code> | |
204 | </li></ul></div> | |
205 | <p> | |
206 | <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span> | |
207 | </p> | |
208 | <a name="reference_operator_compare_less_or_equal_optional_optional"></a><div class="blockquote"><blockquote class="blockquote"><p> | |
209 | <code class="computeroutput"><span class="keyword">bool</span> <span class="keyword">operator</span> | |
210 | <span class="special"><=</span> <span class="special">(</span> | |
211 | <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">y</span> <span class="special">);</span></code> | |
212 | </p></blockquote></div> | |
213 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> | |
214 | <span class="bold"><strong>Returns: </strong></span> <code class="computeroutput"><span class="special">!(</span> | |
215 | <span class="identifier">y</span> <span class="special"><</span> | |
216 | <span class="identifier">x</span> <span class="special">);</span></code> | |
217 | </li></ul></div> | |
218 | <p> | |
219 | <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span> | |
220 | </p> | |
221 | <a name="reference_operator_compare_greater_or_equal_optional_optional"></a><div class="blockquote"><blockquote class="blockquote"><p> | |
222 | <code class="computeroutput"><span class="keyword">bool</span> <span class="keyword">operator</span> | |
223 | <span class="special">>=</span> <span class="special">(</span> | |
224 | <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">y</span> <span class="special">);</span></code> | |
225 | </p></blockquote></div> | |
226 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> | |
227 | <span class="bold"><strong>Returns: </strong></span> <code class="computeroutput"><span class="special">!(</span> | |
228 | <span class="identifier">x</span> <span class="special"><</span> | |
229 | <span class="identifier">y</span> <span class="special">);</span></code> | |
230 | </li></ul></div> | |
231 | <p> | |
232 | <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span> | |
233 | </p> | |
234 | <a name="reference_operator_compare_equal_optional_none"></a><div class="blockquote"><blockquote class="blockquote"><p> | |
235 | <code class="computeroutput"><span class="keyword">bool</span> <span class="keyword">operator</span> | |
236 | <span class="special">==</span> <span class="special">(</span> | |
237 | <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">none_t</span> <span class="special">)</span> | |
238 | <span class="keyword">noexcept</span><span class="special">;</span></code> | |
239 | </p></blockquote></div> | |
240 | <div class="blockquote"><blockquote class="blockquote"><p> | |
241 | <code class="computeroutput"><span class="keyword">bool</span> <span class="keyword">operator</span> | |
242 | <span class="special">==</span> <span class="special">(</span> | |
243 | <span class="identifier">none_t</span><span class="special">,</span> | |
244 | <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">x</span> <span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></code> | |
245 | </p></blockquote></div> | |
246 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | |
247 | <li class="listitem"> | |
248 | <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="special">!</span><span class="identifier">x</span></code>. | |
249 | </li> | |
250 | <li class="listitem"> | |
251 | <span class="bold"><strong>Notes:</strong></span> <code class="computeroutput"><span class="identifier">T</span></code> | |
252 | need not meet requirements of <a href="http://www.sgi.com/tech/stl/EqualityComparable.html" target="_top"><code class="computeroutput"><span class="identifier">EqualityComparable</span></code></a>. | |
253 | </li> | |
254 | </ul></div> | |
255 | <p> | |
256 | <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span> | |
257 | </p> | |
258 | <a name="reference_operator_compare_not_equal_optional_none"></a><div class="blockquote"><blockquote class="blockquote"><p> | |
259 | <code class="computeroutput"><span class="keyword">bool</span> <span class="keyword">operator</span> | |
260 | <span class="special">!=</span> <span class="special">(</span> | |
261 | <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">none_t</span> <span class="special">)</span> | |
262 | <span class="keyword">noexcept</span><span class="special">;</span></code> | |
263 | </p></blockquote></div> | |
264 | <div class="blockquote"><blockquote class="blockquote"><p> | |
265 | <code class="computeroutput"><span class="keyword">bool</span> <span class="keyword">operator</span> | |
266 | <span class="special">!=</span> <span class="special">(</span> | |
267 | <span class="identifier">none_t</span><span class="special">,</span> | |
268 | <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">x</span> <span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></code> | |
269 | </p></blockquote></div> | |
270 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> | |
271 | <span class="bold"><strong>Returns: </strong></span> <code class="computeroutput"><span class="keyword">bool</span><span class="special">(</span><span class="identifier">x</span><span class="special">);</span></code> | |
272 | </li></ul></div> | |
273 | <p> | |
274 | <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span> | |
275 | </p> | |
276 | <a name="reference_free_get_pointer"></a><div class="blockquote"><blockquote class="blockquote"><p> | |
277 | <code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">get_pointer</span> | |
278 | <span class="special">(</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">o</span> | |
279 | <span class="special">)</span> <span class="special">-></span> | |
280 | <span class="keyword">typename</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">pointer_type</span> | |
281 | <span class="special">;</span></code> | |
282 | </p></blockquote></div> | |
283 | <div class="blockquote"><blockquote class="blockquote"><p> | |
284 | <code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">get_pointer</span> | |
285 | <span class="special">(</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">o</span> <span class="special">)</span> <span class="special">-></span> <span class="keyword">typename</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">pointer_const_type</span> | |
286 | <span class="special">;</span></code> | |
287 | </p></blockquote></div> | |
288 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | |
289 | <li class="listitem"> | |
290 | <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">o</span><span class="special">.</span><span class="identifier">get_ptr</span><span class="special">()</span></code>. | |
291 | </li> | |
292 | <li class="listitem"> | |
293 | <span class="bold"><strong>Throws:</strong></span> Nothing. | |
294 | </li> | |
295 | </ul></div> | |
296 | <p> | |
297 | <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span> | |
298 | </p> | |
299 | <a name="reference_free_get_value_or"></a><div class="blockquote"><blockquote class="blockquote"><p> | |
300 | <code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">get_optional_value_or</span> | |
301 | <span class="special">(</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">o</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">reference_type</span> <span class="identifier">def</span> | |
302 | <span class="special">)</span> <span class="special">-></span> | |
303 | <span class="keyword">typename</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">reference_type</span> | |
304 | <span class="special">;</span></code> | |
305 | </p></blockquote></div> | |
306 | <div class="blockquote"><blockquote class="blockquote"><p> | |
307 | <code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">get_optional_value_or</span> | |
308 | <span class="special">(</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">o</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">reference_const_type</span> <span class="identifier">def</span> | |
309 | <span class="special">)</span> <span class="special">-></span> | |
310 | <span class="keyword">typename</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">reference_const_type</span> | |
311 | <span class="special">;</span></code> | |
312 | </p></blockquote></div> | |
313 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | |
314 | <li class="listitem"> | |
315 | <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">o</span><span class="special">.</span><span class="identifier">get_value_or</span><span class="special">(</span><span class="identifier">def</span><span class="special">)</span></code>. | |
316 | </li> | |
317 | <li class="listitem"> | |
318 | <span class="bold"><strong>Throws:</strong></span> Nothing. | |
319 | </li> | |
320 | <li class="listitem"> | |
321 | <span class="bold"><strong>Remarks:</strong></span> This function is deprecated. | |
322 | </li> | |
323 | </ul></div> | |
324 | <p> | |
325 | <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span> | |
326 | </p> | |
327 | <a name="reference_swap_optional_optional"></a><div class="blockquote"><blockquote class="blockquote"><p> | |
328 | <code class="computeroutput"><span class="keyword">void</span> <span class="identifier">swap</span> | |
329 | <span class="special">(</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">y</span> | |
330 | <span class="special">)</span> <span class="special">;</span></code> | |
331 | </p></blockquote></div> | |
332 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | |
333 | <li class="listitem"> | |
334 | <span class="bold"><strong>Requires:</strong></span> Lvalues of type <code class="computeroutput"><span class="identifier">T</span></code> shall be swappable and <code class="computeroutput"><span class="identifier">T</span></code> shall be <code class="computeroutput"><span class="identifier">MoveConstructible</span></code>. | |
335 | </li> | |
336 | <li class="listitem"> | |
337 | <p class="simpara"> | |
338 | <span class="bold"><strong>Effects:</strong></span> | |
339 | </p> | |
340 | <div class="informaltable"><table class="table"> | |
341 | <colgroup> | |
342 | <col> | |
343 | <col> | |
344 | <col> | |
345 | </colgroup> | |
346 | <thead><tr></tr></thead> | |
347 | <tbody> | |
348 | <tr> | |
349 | <td> | |
350 | </td> | |
351 | <td> | |
352 | <p> | |
353 | <span class="bold"><strong><code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> contains a value</strong></span> | |
354 | </p> | |
355 | </td> | |
356 | <td> | |
357 | <p> | |
358 | <span class="bold"><strong><code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> does not contain a value</strong></span> | |
359 | </p> | |
360 | </td> | |
361 | </tr> | |
362 | <tr> | |
363 | <td> | |
364 | <p> | |
365 | <span class="bold"><strong><code class="computeroutput"><span class="identifier">rhs</span></code> | |
366 | contains a value</strong></span> | |
367 | </p> | |
368 | </td> | |
369 | <td> | |
370 | <p> | |
371 | calls <code class="computeroutput"><span class="identifier">swap</span><span class="special">(*(*</span><span class="keyword">this</span><span class="special">),</span> <span class="special">*</span><span class="identifier">rhs</span><span class="special">)</span></code> | |
372 | </p> | |
373 | </td> | |
374 | <td> | |
375 | <p> | |
376 | initializes the contained value of <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> as if direct-initializing | |
377 | an object of type <code class="computeroutput"><span class="identifier">T</span></code> | |
378 | with the expression <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">move</span><span class="special">(*</span><span class="identifier">rhs</span><span class="special">)</span></code>, followed by <code class="computeroutput"><span class="identifier">rhs</span><span class="special">.</span><span class="identifier">val</span><span class="special">-></span><span class="identifier">T</span><span class="special">::~</span><span class="identifier">T</span><span class="special">()</span></code>, | |
379 | <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> | |
380 | contains a value and <code class="computeroutput"><span class="identifier">rhs</span></code> | |
381 | does not contain a value | |
382 | </p> | |
383 | </td> | |
384 | </tr> | |
385 | <tr> | |
386 | <td> | |
387 | <p> | |
388 | <span class="bold"><strong><code class="computeroutput"><span class="identifier">rhs</span></code> | |
389 | does not contain a value</strong></span> | |
390 | </p> | |
391 | </td> | |
392 | <td> | |
393 | <p> | |
394 | initializes the contained value of <code class="computeroutput"><span class="identifier">rhs</span></code> | |
395 | as if direct-initializing an object of type <code class="computeroutput"><span class="identifier">T</span></code> with the expression | |
396 | <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">move</span><span class="special">(*(*</span><span class="keyword">this</span><span class="special">))</span></code>, | |
397 | followed by <code class="computeroutput"><span class="identifier">val</span><span class="special">-></span><span class="identifier">T</span><span class="special">::~</span><span class="identifier">T</span><span class="special">()</span></code>, <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> does not contain a value | |
398 | and <code class="computeroutput"><span class="identifier">rhs</span></code> contains | |
399 | a value | |
400 | </p> | |
401 | </td> | |
402 | <td> | |
403 | <p> | |
404 | no effect | |
405 | </p> | |
406 | </td> | |
407 | </tr> | |
408 | </tbody> | |
409 | </table></div> | |
410 | </li> | |
411 | <li class="listitem"> | |
412 | <span class="bold"><strong>Postconditions:</strong></span> The states of <code class="computeroutput"><span class="identifier">x</span></code> and <code class="computeroutput"><span class="identifier">y</span></code> | |
413 | interchanged. | |
414 | </li> | |
415 | <li class="listitem"> | |
416 | <span class="bold"><strong>Throws:</strong></span> If both are initialized, whatever | |
417 | <code class="computeroutput"><span class="identifier">swap</span><span class="special">(</span><span class="identifier">T</span><span class="special">&,</span><span class="identifier">T</span><span class="special">&)</span></code> | |
418 | throws. If only one is initialized, whatever <code class="computeroutput"><span class="identifier">T</span><span class="special">::</span><span class="identifier">T</span> <span class="special">(</span> <span class="identifier">T</span><span class="special">&&</span> <span class="special">)</span></code> | |
419 | throws. | |
420 | </li> | |
421 | <li class="listitem"> | |
422 | <span class="bold"><strong>Example:</strong></span> | |
423 | <pre class="programlisting"><span class="identifier">T</span> <span class="identifier">x</span><span class="special">(</span><span class="number">12</span><span class="special">);</span> | |
424 | <span class="identifier">T</span> <span class="identifier">y</span><span class="special">(</span><span class="number">21</span><span class="special">);</span> | |
425 | <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">def0</span> <span class="special">;</span> | |
426 | <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">def1</span> <span class="special">;</span> | |
427 | <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">optX</span><span class="special">(</span><span class="identifier">x</span><span class="special">);</span> | |
428 | <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">optY</span><span class="special">(</span><span class="identifier">y</span><span class="special">);</span> | |
429 | ||
430 | <span class="identifier">boost</span><span class="special">::</span><span class="identifier">swap</span><span class="special">(</span><span class="identifier">def0</span><span class="special">,</span><span class="identifier">def1</span><span class="special">);</span> <span class="comment">// no-op</span> | |
431 | ||
432 | <span class="identifier">boost</span><span class="special">::</span><span class="identifier">swap</span><span class="special">(</span><span class="identifier">def0</span><span class="special">,</span><span class="identifier">optX</span><span class="special">);</span> | |
433 | <span class="identifier">assert</span> <span class="special">(</span> <span class="special">*</span><span class="identifier">def0</span> <span class="special">==</span> <span class="identifier">x</span> <span class="special">);</span> | |
434 | <span class="identifier">assert</span> <span class="special">(</span> <span class="special">!</span><span class="identifier">optX</span> <span class="special">);</span> | |
435 | ||
436 | <span class="identifier">boost</span><span class="special">::</span><span class="identifier">swap</span><span class="special">(</span><span class="identifier">def0</span><span class="special">,</span><span class="identifier">optX</span><span class="special">);</span> <span class="comment">// Get back to original values</span> | |
437 | ||
438 | <span class="identifier">boost</span><span class="special">::</span><span class="identifier">swap</span><span class="special">(</span><span class="identifier">optX</span><span class="special">,</span><span class="identifier">optY</span><span class="special">);</span> | |
439 | <span class="identifier">assert</span> <span class="special">(</span> <span class="special">*</span><span class="identifier">optX</span> <span class="special">==</span> <span class="identifier">y</span> <span class="special">);</span> | |
440 | <span class="identifier">assert</span> <span class="special">(</span> <span class="special">*</span><span class="identifier">optY</span> <span class="special">==</span> <span class="identifier">x</span> <span class="special">);</span> | |
441 | </pre> | |
442 | </li> | |
443 | </ul></div> | |
444 | <p> | |
445 | <span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span> | |
446 | </p> | |
447 | <a name="reference_swap_optional_reference"></a><div class="blockquote"><blockquote class="blockquote"><p> | |
448 | <code class="computeroutput"><span class="keyword">void</span> <span class="identifier">swap</span> | |
449 | <span class="special">(</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">&>&</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">&>&</span> <span class="identifier">y</span> | |
450 | <span class="special">)</span> <span class="keyword">noexcept</span> | |
451 | <span class="special">;</span></code> | |
452 | </p></blockquote></div> | |
453 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | |
454 | <li class="listitem"> | |
455 | <span class="bold"><strong>Postconditions:</strong></span> <code class="computeroutput"><span class="identifier">x</span></code> | |
456 | refers to what <code class="computeroutput"><span class="identifier">y</span></code> refererred | |
457 | to before the swap (if anything). <code class="computeroutput"><span class="identifier">y</span></code> | |
458 | refers to whatever <code class="computeroutput"><span class="identifier">x</span></code> | |
459 | referred to before the swap. | |
460 | </li> | |
461 | <li class="listitem"> | |
462 | <span class="bold"><strong>Example:</strong></span> | |
463 | <pre class="programlisting"><span class="identifier">T</span> <span class="identifier">x</span><span class="special">(</span><span class="number">12</span><span class="special">);</span> | |
464 | <span class="identifier">T</span> <span class="identifier">y</span><span class="special">(</span><span class="number">21</span><span class="special">);</span> | |
465 | ||
466 | <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">&></span> <span class="identifier">opt0</span><span class="special">;</span> | |
467 | <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">&></span> <span class="identifier">optX</span> <span class="special">(</span><span class="identifier">x</span><span class="special">);</span> | |
468 | <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">&></span> <span class="identifier">optY</span> <span class="special">(</span><span class="identifier">y</span><span class="special">);</span> | |
469 | ||
470 | <span class="identifier">boost</span><span class="special">::</span><span class="identifier">swap</span><span class="special">(</span><span class="identifier">optX</span><span class="special">,</span> <span class="identifier">optY</span><span class="special">);</span> | |
471 | <span class="identifier">assert</span> <span class="special">(</span><span class="identifier">addressof</span><span class="special">(*</span><span class="identifier">optX</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">addressof</span><span class="special">(</span><span class="identifier">y</span><span class="special">));</span> | |
472 | <span class="identifier">assert</span> <span class="special">(</span><span class="identifier">addressof</span><span class="special">(*</span><span class="identifier">optY</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">addressof</span><span class="special">(</span><span class="identifier">x</span><span class="special">));</span> | |
473 | ||
474 | <span class="identifier">boost</span><span class="special">::</span><span class="identifier">swap</span><span class="special">(</span><span class="identifier">opt0</span><span class="special">,</span> <span class="identifier">optX</span><span class="special">);</span> | |
475 | <span class="identifier">assert</span> <span class="special">(</span> <span class="identifier">opt0</span> <span class="special">);</span> | |
476 | <span class="identifier">assert</span> <span class="special">(</span> <span class="special">!</span><span class="identifier">optX</span> <span class="special">);</span> | |
477 | <span class="identifier">assert</span> <span class="special">(</span><span class="identifier">addressof</span><span class="special">(*</span><span class="identifier">opt0</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">addressof</span><span class="special">(</span><span class="identifier">y</span><span class="special">));</span> | |
478 | </pre> | |
479 | </li> | |
480 | </ul></div> | |
481 | </div> | |
482 | <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> | |
483 | <td align="left"></td> | |
484 | <td align="right"><div class="copyright-footer">Copyright © 2003-2007 Fernando Luis Cacciola Carballal<br>Copyright © 2014-2016 Andrzej Krzemieński<p> | |
485 | Distributed under the Boost Software License, Version 1.0. (See accompanying | |
486 | 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>) | |
487 | </p> | |
488 | </div></td> | |
489 | </tr></table> | |
490 | <hr> | |
491 | <div class="spirit-nav"> | |
492 | <a accesskey="p" href="detailed_semantics___optional_references.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="../header__boost_optional_hpp_.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> | |
493 | </div> | |
494 | </body> | |
495 | </html> |