mirror of
https://github.com/boostorg/optional.git
synced 2025-07-23 17:17:17 +02:00
documented in-place constructors
This commit is contained in:
@ -15,6 +15,12 @@
|
|||||||
|
|
||||||
namespace boost {
|
namespace boost {
|
||||||
|
|
||||||
|
class in_place_init_t { /* see below */ } ; ``[link reference_in_place_init __GO_TO__]``
|
||||||
|
const in_place_init_t in_place_init ( /* see below */ ) ;
|
||||||
|
|
||||||
|
class in_place_init_if_t { /*see below*/ } ; ``[link reference_in_place_init_if __GO_TO__]``
|
||||||
|
const in_place_init_if_t in_place_init_if ( /*see below*/ ) ;
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
class optional ; ``[link reference_operator_template __GO_TO__]``
|
class optional ; ``[link reference_operator_template __GO_TO__]``
|
||||||
|
|
||||||
@ -67,6 +73,26 @@
|
|||||||
[endsect]
|
[endsect]
|
||||||
|
|
||||||
|
|
||||||
|
[section:header_optional_in_place_init Initialization tags]
|
||||||
|
|
||||||
|
[#reference_in_place_init]
|
||||||
|
[#reference_in_place_init_if]
|
||||||
|
|
||||||
|
namespace boost {
|
||||||
|
|
||||||
|
class in_place_init_t { /* see below */ } ;
|
||||||
|
const in_place_init_t in_place_init ( /* see below */ ) ;
|
||||||
|
|
||||||
|
class in_place_init_if_t { /*see below*/ } ;
|
||||||
|
const in_place_init_if_t in_place_init_if ( /*see below*/ ) ;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Classes `in_place_init_t` and `in_place_init_if_t` are empty clsses. Their purpose is to control overload resolution in the initialization of optional objects.
|
||||||
|
They are empty, trivially copyable classes with disabled default constructor.
|
||||||
|
|
||||||
|
[endsect]
|
||||||
|
|
||||||
[section:header_optional_optional_values Optional Values]
|
[section:header_optional_optional_values Optional Values]
|
||||||
|
|
||||||
[#reference_operator_template]
|
[#reference_operator_template]
|
||||||
@ -91,7 +117,6 @@
|
|||||||
|
|
||||||
optional ( T&& v ) ; ``[link reference_optional_constructor_move_value __GO_TO__]``
|
optional ( T&& v ) ; ``[link reference_optional_constructor_move_value __GO_TO__]``
|
||||||
|
|
||||||
// [new in 1.34]
|
|
||||||
optional ( bool condition, T const& v ) ; ``[link reference_optional_constructor_bool_value __GO_TO__]``
|
optional ( bool condition, T const& v ) ; ``[link reference_optional_constructor_bool_value __GO_TO__]``
|
||||||
|
|
||||||
optional ( optional const& rhs ) ; ``[link reference_optional_constructor_optional __GO_TO__]``
|
optional ( optional const& rhs ) ; ``[link reference_optional_constructor_optional __GO_TO__]``
|
||||||
@ -101,6 +126,10 @@
|
|||||||
template<class U> explicit optional ( optional<U> const& rhs ) ; ``[link reference_optional_constructor_other_optional __GO_TO__]``
|
template<class U> explicit optional ( optional<U> const& rhs ) ; ``[link reference_optional_constructor_other_optional __GO_TO__]``
|
||||||
|
|
||||||
template<class U> explicit optional ( optional<U>&& rhs ) ; ``[link reference_optional_move_constructor_other_optional __GO_TO__]``
|
template<class U> explicit optional ( optional<U>&& rhs ) ; ``[link reference_optional_move_constructor_other_optional __GO_TO__]``
|
||||||
|
|
||||||
|
template<class... Args> explicit optional ( in_place_init_t, Args&&... args ) ; ``[link reference_optional_in_place_init __GO_TO__]``
|
||||||
|
|
||||||
|
template<class... Args> explicit optional ( in_place_init_if_t, bool condition, Args&&... args ) ; ``[link reference_optional_in_place_init_if __GO_TO__]``
|
||||||
|
|
||||||
template<class InPlaceFactory> explicit optional ( InPlaceFactory const& f ) ; ``[link reference_optional_constructor_factory __GO_TO__]``
|
template<class InPlaceFactory> explicit optional ( InPlaceFactory const& f ) ; ``[link reference_optional_constructor_factory __GO_TO__]``
|
||||||
|
|
||||||
|
@ -224,6 +224,53 @@ assert( *y == 123 ) ;
|
|||||||
|
|
||||||
__SPACE__
|
__SPACE__
|
||||||
|
|
||||||
|
[#reference_optional_in_place_init]
|
||||||
|
|
||||||
|
[: `template<class... Args> explicit optional<T>::optional( in_place_init_t, Args&&... ars );`]
|
||||||
|
|
||||||
|
* [*Requires:] `is_constructible_v<T, Args&&...>` is `true`.
|
||||||
|
* [*Effect:] Initializes the contained value as if direct-non-list-initializing an object of type `T` with the
|
||||||
|
arguments `std::forward<Args>(args)...`.
|
||||||
|
* [*Postconditions:] `*this` is initialized.
|
||||||
|
* [*Throws:] Any exception thrown by the selected constructor of `T`.
|
||||||
|
* [*Notes: ] `T` need not be __MOVE_CONSTRUCTIBLE__. On compilers that do not suppor variadic templates or rvalue references, this constuctor is available in limited functionality. For details [link optional_emplace_workaround see here].
|
||||||
|
|
||||||
|
* [*Example:]
|
||||||
|
``
|
||||||
|
// creates an std::mutex using its default constructor
|
||||||
|
optional<std::mutex> om {in_place_init};
|
||||||
|
assert (om);
|
||||||
|
|
||||||
|
// creates a unique_lock by calling unique_lock(*om, std::defer_lock)
|
||||||
|
optional<std::unique_lock<std::mutex>> ol {in_place_init, *om, std::defer_lock};
|
||||||
|
assert (ol);
|
||||||
|
assert (!ol->owns_lock());
|
||||||
|
``
|
||||||
|
|
||||||
|
__SPACE__
|
||||||
|
|
||||||
|
[#reference_optional_in_place_init_if]
|
||||||
|
|
||||||
|
[: `template<class... Args> explicit optional<T>::optional( in_place_init_if_t, bool condition, Args&&... ars );`]
|
||||||
|
|
||||||
|
* [*Requires:] `is_constructible_v<T, Args&&...>` is `true`.
|
||||||
|
* [*Effect:] If `condition` is `true`, initializes the contained value as if direct-non-list-initializing an object of type `T` with the arguments `std::forward<Args>(args)...`.
|
||||||
|
* [*Postconditions:] `bool(*this) == condition`.
|
||||||
|
* [*Throws:] Any exception thrown by the selected constructor of `T`.
|
||||||
|
* [*Notes: ] `T` need not be __MOVE_CONSTRUCTIBLE__. On compilers that do not suppor variadic templates or rvalue references, this constuctor is available in limited functionality. For details [link optional_emplace_workaround see here].
|
||||||
|
|
||||||
|
* [*Example:]
|
||||||
|
``
|
||||||
|
optional<std::vector<std::string>> ov1 {in_place_init_if, false, 3, "A"};
|
||||||
|
assert (!ov1);
|
||||||
|
|
||||||
|
optional<std::vector<std::string>> ov2 {in_place_init_if, true, 3, "A"};
|
||||||
|
assert (ov2);
|
||||||
|
assert (ov2->size() == 3);
|
||||||
|
``
|
||||||
|
|
||||||
|
__SPACE__
|
||||||
|
|
||||||
[#reference_optional_constructor_factory]
|
[#reference_optional_constructor_factory]
|
||||||
|
|
||||||
[: `template<InPlaceFactory> explicit optional<T>::optional( InPlaceFactory const& f );`]
|
[: `template<InPlaceFactory> explicit optional<T>::optional( InPlaceFactory const& f );`]
|
||||||
@ -455,9 +502,7 @@ __SPACE__
|
|||||||
* [*Postconditions: ] `*this` is [_initialized].
|
* [*Postconditions: ] `*this` is [_initialized].
|
||||||
* [*Throws:] Whatever the selected `T`'s constructor throws.
|
* [*Throws:] Whatever the selected `T`'s constructor throws.
|
||||||
* [*Exception Safety:] If an exception is thrown during the initialization of `T`, `*this` is ['uninitialized].
|
* [*Exception Safety:] If an exception is thrown during the initialization of `T`, `*this` is ['uninitialized].
|
||||||
* [*Notes:] `T` need not be __MOVE_CONSTRUCTIBLE__ or `MoveAssignable`.
|
* [*Notes:] `T` need not be __MOVE_CONSTRUCTIBLE__ or `MoveAssignable`. On compilers that do not suppor variadic templates or rvalue references, this function is available in limited functionality. For details [link optional_emplace_workaround see here].
|
||||||
On compilers that do not support variadic templates, the signature falls back to two overloads:`template<class Arg> void emplace(Arg&& arg)` and `void emplace()`.
|
|
||||||
On compilers that do not support rvalue references, the signature falls back to three overloads: taking `const` and non-`const` lvalue reference, and third with empty function argument list.
|
|
||||||
* [*Example:]
|
* [*Example:]
|
||||||
``
|
``
|
||||||
T v;
|
T v;
|
||||||
|
@ -27,6 +27,41 @@ The implementation uses the following other Boost modules:
|
|||||||
|
|
||||||
[endsect]
|
[endsect]
|
||||||
|
|
||||||
|
[section Emplace operations in older compilers][#optional_emplace_workaround]
|
||||||
|
|
||||||
|
Certain constructors and functions in the interface of `optional` perform a 'perfect forwarding' of arguments:
|
||||||
|
|
||||||
|
template<class... Args> optional(in_place_init_t, Args&&... args);
|
||||||
|
template<class... Args> optional(in_place_init_if_t, bool condition, Args&&... args);
|
||||||
|
template<class... Args> void emplace(Args&&... args);
|
||||||
|
|
||||||
|
On compilers that do not support variadic templates, each of these functions is substituted with two overloads, one forwarding a single argument, the other forwarding zero arguments. This forms the following set:
|
||||||
|
|
||||||
|
template<class Arg> optional(in_place_init_t, Arg&& arg);
|
||||||
|
optional(in_place_init_t);
|
||||||
|
|
||||||
|
template<class Arg> optional(in_place_init_if_t, bool condition, Arg&& arg);
|
||||||
|
optional(in_place_init_if_t, bool condition);
|
||||||
|
|
||||||
|
template<class Arg> void emplace(Arg&& arg);
|
||||||
|
void emplace();
|
||||||
|
|
||||||
|
On compilers that do not support rvalue references, each of these functions is substituted with three overloadss: taking `const` and non-`const` lvalue reference, and third forwarding zero arguments. This forms the following set:
|
||||||
|
|
||||||
|
template<class Arg> optional(in_place_init_t, const Arg& arg);
|
||||||
|
template<class Arg> optional(in_place_init_t, Arg& arg);
|
||||||
|
optional(in_place_init_t);
|
||||||
|
|
||||||
|
template<class Arg> optional(in_place_init_if_t, bool condition, const Arg& arg);
|
||||||
|
template<class Arg> optional(in_place_init_if_t, bool condition, Arg& arg);
|
||||||
|
optional(in_place_init_if_t, bool condition);
|
||||||
|
|
||||||
|
template<class Arg> void emplace(const Arg& arg);
|
||||||
|
template<class Arg> void emplace(Arg& arg);
|
||||||
|
void emplace();
|
||||||
|
|
||||||
|
This workaround addressess about 40% of all use cases. If this is insufficient, you need to resort to using [link boost_optional.tutorial.in_place_factories In-Place Factories].
|
||||||
|
[endsect]
|
||||||
|
|
||||||
[section Optional Reference Binding][#optional_reference_binding]
|
[section Optional Reference Binding][#optional_reference_binding]
|
||||||
|
|
||||||
|
@ -11,6 +11,10 @@
|
|||||||
|
|
||||||
[section:relnotes Release Notes]
|
[section:relnotes Release Notes]
|
||||||
|
|
||||||
|
[heading Boost Release 1.63]
|
||||||
|
* Added two new in-place constructors. They work similarly to `emplace()` functions: they initialize the contained value by perfect-forwarding the obtained arguments. One constructor always initializes the contained value, the other based on a boolean condition.
|
||||||
|
* Fixed [@https://svn.boost.org/trac/boost/ticket/12203 Trac #12203].
|
||||||
|
|
||||||
|
|
||||||
[heading Boost Release 1.62]
|
[heading Boost Release 1.62]
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<link rel="home" href="../index.html" title="Boost.Optional">
|
<link rel="home" href="../index.html" title="Boost.Optional">
|
||||||
<link rel="up" href="../index.html" title="Boost.Optional">
|
<link rel="up" href="../index.html" title="Boost.Optional">
|
||||||
<link rel="prev" href="reference/header__boost_optional_hpp_.html" title="Header <boost/optional.hpp>">
|
<link rel="prev" href="reference/header__boost_optional_hpp_.html" title="Header <boost/optional.hpp>">
|
||||||
<link rel="next" href="dependencies_and_portability/optional_reference_binding.html" title="Optional Reference Binding">
|
<link rel="next" href="dependencies_and_portability/emplace_operations_in_older_compilers.html" title="Emplace operations in older compilers">
|
||||||
</head>
|
</head>
|
||||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||||
<table cellpadding="2" width="100%"><tr>
|
<table cellpadding="2" width="100%"><tr>
|
||||||
@ -20,7 +20,7 @@
|
|||||||
</tr></table>
|
</tr></table>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="spirit-nav">
|
<div class="spirit-nav">
|
||||||
<a accesskey="p" href="reference/header__boost_optional_hpp_.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="dependencies_and_portability/optional_reference_binding.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
|
<a accesskey="p" href="reference/header__boost_optional_hpp_.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="dependencies_and_portability/emplace_operations_in_older_compilers.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="section">
|
<div class="section">
|
||||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||||
@ -29,6 +29,8 @@
|
|||||||
</h2></div></div></div>
|
</h2></div></div></div>
|
||||||
<div class="toc"><dl class="toc">
|
<div class="toc"><dl class="toc">
|
||||||
<dt><span class="section"><a href="dependencies_and_portability.html#boost_optional.dependencies_and_portability.dependencies">Dependencies</a></span></dt>
|
<dt><span class="section"><a href="dependencies_and_portability.html#boost_optional.dependencies_and_portability.dependencies">Dependencies</a></span></dt>
|
||||||
|
<dt><span class="section"><a href="dependencies_and_portability/emplace_operations_in_older_compilers.html">Emplace
|
||||||
|
operations in older compilers</a></span></dt>
|
||||||
<dt><span class="section"><a href="dependencies_and_portability/optional_reference_binding.html">Optional
|
<dt><span class="section"><a href="dependencies_and_portability/optional_reference_binding.html">Optional
|
||||||
Reference Binding</a></span></dt>
|
Reference Binding</a></span></dt>
|
||||||
</dl></div>
|
</dl></div>
|
||||||
@ -83,7 +85,7 @@
|
|||||||
</tr></table>
|
</tr></table>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="spirit-nav">
|
<div class="spirit-nav">
|
||||||
<a accesskey="p" href="reference/header__boost_optional_hpp_.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="dependencies_and_portability/optional_reference_binding.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
|
<a accesskey="p" href="reference/header__boost_optional_hpp_.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="dependencies_and_portability/emplace_operations_in_older_compilers.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -0,0 +1,90 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||||
|
<title>Emplace operations in older compilers</title>
|
||||||
|
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
|
||||||
|
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||||
|
<link rel="home" href="../../index.html" title="Boost.Optional">
|
||||||
|
<link rel="up" href="../dependencies_and_portability.html" title="Dependencies and Portability">
|
||||||
|
<link rel="prev" href="../dependencies_and_portability.html" title="Dependencies and Portability">
|
||||||
|
<link rel="next" href="optional_reference_binding.html" title="Optional Reference Binding">
|
||||||
|
</head>
|
||||||
|
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||||
|
<table cellpadding="2" width="100%"><tr>
|
||||||
|
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
|
||||||
|
<td align="center"><a href="../../../../../../index.html">Home</a></td>
|
||||||
|
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
|
||||||
|
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||||
|
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||||
|
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
|
||||||
|
</tr></table>
|
||||||
|
<hr>
|
||||||
|
<div class="spirit-nav">
|
||||||
|
<a accesskey="p" href="../dependencies_and_portability.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dependencies_and_portability.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="optional_reference_binding.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||||
|
</div>
|
||||||
|
<div class="section">
|
||||||
|
<div class="titlepage"><div><div><h3 class="title">
|
||||||
|
<a name="boost_optional.dependencies_and_portability.emplace_operations_in_older_compilers"></a><a class="link" href="emplace_operations_in_older_compilers.html" title="Emplace operations in older compilers">Emplace
|
||||||
|
operations in older compilers</a>
|
||||||
|
</h3></div></div></div>
|
||||||
|
<p>
|
||||||
|
<a name="optional_emplace_workaround"></a>Certain constructors and functions
|
||||||
|
in the interface of <code class="computeroutput"><span class="identifier">optional</span></code>
|
||||||
|
perform a 'perfect forwarding' of arguments:
|
||||||
|
</p>
|
||||||
|
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span><span class="special">...</span> <span class="identifier">Args</span><span class="special">></span> <span class="identifier">optional</span><span class="special">(</span><span class="identifier">in_place_init_t</span><span class="special">,</span> <span class="identifier">Args</span><span class="special">&&...</span> <span class="identifier">args</span><span class="special">);</span>
|
||||||
|
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span><span class="special">...</span> <span class="identifier">Args</span><span class="special">></span> <span class="identifier">optional</span><span class="special">(</span><span class="identifier">in_place_init_if_t</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">condition</span><span class="special">,</span> <span class="identifier">Args</span><span class="special">&&...</span> <span class="identifier">args</span><span class="special">);</span>
|
||||||
|
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span><span class="special">...</span> <span class="identifier">Args</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">emplace</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&...</span> <span class="identifier">args</span><span class="special">);</span>
|
||||||
|
</pre>
|
||||||
|
<p>
|
||||||
|
On compilers that do not support variadic templates, each of these functions
|
||||||
|
is substituted with two overloads, one forwarding a single argument, the
|
||||||
|
other forwarding zero arguments. This forms the following set:
|
||||||
|
</p>
|
||||||
|
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Arg</span><span class="special">></span> <span class="identifier">optional</span><span class="special">(</span><span class="identifier">in_place_init_t</span><span class="special">,</span> <span class="identifier">Arg</span><span class="special">&&</span> <span class="identifier">arg</span><span class="special">);</span>
|
||||||
|
<span class="identifier">optional</span><span class="special">(</span><span class="identifier">in_place_init_t</span><span class="special">);</span>
|
||||||
|
|
||||||
|
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Arg</span><span class="special">></span> <span class="identifier">optional</span><span class="special">(</span><span class="identifier">in_place_init_if_t</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">condition</span><span class="special">,</span> <span class="identifier">Arg</span><span class="special">&&</span> <span class="identifier">arg</span><span class="special">);</span>
|
||||||
|
<span class="identifier">optional</span><span class="special">(</span><span class="identifier">in_place_init_if_t</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">condition</span><span class="special">);</span>
|
||||||
|
|
||||||
|
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Arg</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">emplace</span><span class="special">(</span><span class="identifier">Arg</span><span class="special">&&</span> <span class="identifier">arg</span><span class="special">);</span>
|
||||||
|
<span class="keyword">void</span> <span class="identifier">emplace</span><span class="special">();</span>
|
||||||
|
</pre>
|
||||||
|
<p>
|
||||||
|
On compilers that do not support rvalue references, each of these functions
|
||||||
|
is substituted with three overloadss: taking <code class="computeroutput"><span class="keyword">const</span></code>
|
||||||
|
and non-<code class="computeroutput"><span class="keyword">const</span></code> lvalue reference,
|
||||||
|
and third forwarding zero arguments. This forms the following set:
|
||||||
|
</p>
|
||||||
|
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Arg</span><span class="special">></span> <span class="identifier">optional</span><span class="special">(</span><span class="identifier">in_place_init_t</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Arg</span><span class="special">&</span> <span class="identifier">arg</span><span class="special">);</span>
|
||||||
|
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Arg</span><span class="special">></span> <span class="identifier">optional</span><span class="special">(</span><span class="identifier">in_place_init_t</span><span class="special">,</span> <span class="identifier">Arg</span><span class="special">&</span> <span class="identifier">arg</span><span class="special">);</span>
|
||||||
|
<span class="identifier">optional</span><span class="special">(</span><span class="identifier">in_place_init_t</span><span class="special">);</span>
|
||||||
|
|
||||||
|
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Arg</span><span class="special">></span> <span class="identifier">optional</span><span class="special">(</span><span class="identifier">in_place_init_if_t</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">condition</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Arg</span><span class="special">&</span> <span class="identifier">arg</span><span class="special">);</span>
|
||||||
|
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Arg</span><span class="special">></span> <span class="identifier">optional</span><span class="special">(</span><span class="identifier">in_place_init_if_t</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">condition</span><span class="special">,</span> <span class="identifier">Arg</span><span class="special">&</span> <span class="identifier">arg</span><span class="special">);</span>
|
||||||
|
<span class="identifier">optional</span><span class="special">(</span><span class="identifier">in_place_init_if_t</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">condition</span><span class="special">);</span>
|
||||||
|
|
||||||
|
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Arg</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">emplace</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Arg</span><span class="special">&</span> <span class="identifier">arg</span><span class="special">);</span>
|
||||||
|
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Arg</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">emplace</span><span class="special">(</span><span class="identifier">Arg</span><span class="special">&</span> <span class="identifier">arg</span><span class="special">);</span>
|
||||||
|
<span class="keyword">void</span> <span class="identifier">emplace</span><span class="special">();</span>
|
||||||
|
</pre>
|
||||||
|
<p>
|
||||||
|
This workaround addressess about 40% of all use cases. If this is insufficient,
|
||||||
|
you need to resort to using <a class="link" href="../tutorial/in_place_factories.html" title="In-Place Factories">In-Place
|
||||||
|
Factories</a>.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||||
|
<td align="left"></td>
|
||||||
|
<td align="right"><div class="copyright-footer">Copyright © 2003-2007 Fernando Luis Cacciola Carballal<br>Copyright © 2014-2016 Andrzej Krzemieński<p>
|
||||||
|
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
|
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>)
|
||||||
|
</p>
|
||||||
|
</div></td>
|
||||||
|
</tr></table>
|
||||||
|
<hr>
|
||||||
|
<div class="spirit-nav">
|
||||||
|
<a accesskey="p" href="../dependencies_and_portability.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dependencies_and_portability.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="optional_reference_binding.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -6,7 +6,7 @@
|
|||||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||||
<link rel="home" href="../../index.html" title="Boost.Optional">
|
<link rel="home" href="../../index.html" title="Boost.Optional">
|
||||||
<link rel="up" href="../dependencies_and_portability.html" title="Dependencies and Portability">
|
<link rel="up" href="../dependencies_and_portability.html" title="Dependencies and Portability">
|
||||||
<link rel="prev" href="../dependencies_and_portability.html" title="Dependencies and Portability">
|
<link rel="prev" href="emplace_operations_in_older_compilers.html" title="Emplace operations in older compilers">
|
||||||
<link rel="next" href="../relnotes.html" title="Release Notes">
|
<link rel="next" href="../relnotes.html" title="Release Notes">
|
||||||
</head>
|
</head>
|
||||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||||
@ -20,7 +20,7 @@
|
|||||||
</tr></table>
|
</tr></table>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="spirit-nav">
|
<div class="spirit-nav">
|
||||||
<a accesskey="p" href="../dependencies_and_portability.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dependencies_and_portability.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="../relnotes.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
|
<a accesskey="p" href="emplace_operations_in_older_compilers.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dependencies_and_portability.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="../relnotes.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="section">
|
<div class="section">
|
||||||
<div class="titlepage"><div><div><h3 class="title">
|
<div class="titlepage"><div><div><h3 class="title">
|
||||||
@ -101,7 +101,7 @@
|
|||||||
</tr></table>
|
</tr></table>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="spirit-nav">
|
<div class="spirit-nav">
|
||||||
<a accesskey="p" href="../dependencies_and_portability.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dependencies_and_portability.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="../relnotes.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
|
<a accesskey="p" href="emplace_operations_in_older_compilers.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dependencies_and_portability.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="../relnotes.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -403,6 +403,94 @@
|
|||||||
</pre>
|
</pre>
|
||||||
</li>
|
</li>
|
||||||
</ul></div>
|
</ul></div>
|
||||||
|
<p>
|
||||||
|
<span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
|
||||||
|
</p>
|
||||||
|
<a name="reference_optional_in_place_init"></a><div class="blockquote"><blockquote class="blockquote"><p>
|
||||||
|
<code class="computeroutput"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span><span class="special">...</span> <span class="identifier">Args</span><span class="special">></span>
|
||||||
|
<span class="keyword">explicit</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">optional</span><span class="special">(</span> <span class="identifier">in_place_init_t</span><span class="special">,</span> <span class="identifier">Args</span><span class="special">&&...</span> <span class="identifier">ars</span>
|
||||||
|
<span class="special">);</span></code>
|
||||||
|
</p></blockquote></div>
|
||||||
|
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||||
|
<li class="listitem">
|
||||||
|
<span class="bold"><strong>Requires:</strong></span> <code class="computeroutput"><span class="identifier">is_constructible_v</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Args</span><span class="special">&&...></span></code> is <code class="computeroutput"><span class="keyword">true</span></code>.
|
||||||
|
</li>
|
||||||
|
<li class="listitem">
|
||||||
|
<span class="bold"><strong>Effect:</strong></span> Initializes the contained
|
||||||
|
value as if direct-non-list-initializing an object of type <code class="computeroutput"><span class="identifier">T</span></code> with the arguments <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">forward</span><span class="special"><</span><span class="identifier">Args</span><span class="special">>(</span><span class="identifier">args</span><span class="special">)...</span></code>.
|
||||||
|
</li>
|
||||||
|
<li class="listitem">
|
||||||
|
<span class="bold"><strong>Postconditions:</strong></span> <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> is initialized.
|
||||||
|
</li>
|
||||||
|
<li class="listitem">
|
||||||
|
<span class="bold"><strong>Throws:</strong></span> Any exception thrown by the
|
||||||
|
selected constructor of <code class="computeroutput"><span class="identifier">T</span></code>.
|
||||||
|
</li>
|
||||||
|
<li class="listitem">
|
||||||
|
<span class="bold"><strong>Notes: </strong></span> <code class="computeroutput"><span class="identifier">T</span></code>
|
||||||
|
need not be <code class="computeroutput"><span class="identifier">MoveConstructible</span></code>.
|
||||||
|
On compilers that do not suppor variadic templates or rvalue references,
|
||||||
|
this constuctor is available in limited functionality. For details
|
||||||
|
<a class="link" href="../../dependencies_and_portability/emplace_operations_in_older_compilers.html#optional_emplace_workaround">see here</a>.
|
||||||
|
</li>
|
||||||
|
<li class="listitem">
|
||||||
|
<span class="bold"><strong>Example:</strong></span>
|
||||||
|
<pre class="programlisting"><span class="comment">// creates an std::mutex using its default constructor</span>
|
||||||
|
<span class="identifier">optional</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">></span> <span class="identifier">om</span> <span class="special">{</span><span class="identifier">in_place_init</span><span class="special">};</span>
|
||||||
|
<span class="identifier">assert</span> <span class="special">(</span><span class="identifier">om</span><span class="special">);</span>
|
||||||
|
|
||||||
|
<span class="comment">// creates a unique_lock by calling unique_lock(*om, std::defer_lock)</span>
|
||||||
|
<span class="identifier">optional</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">unique_lock</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">>></span> <span class="identifier">ol</span> <span class="special">{</span><span class="identifier">in_place_init</span><span class="special">,</span> <span class="special">*</span><span class="identifier">om</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">defer_lock</span><span class="special">};</span>
|
||||||
|
<span class="identifier">assert</span> <span class="special">(</span><span class="identifier">ol</span><span class="special">);</span>
|
||||||
|
<span class="identifier">assert</span> <span class="special">(!</span><span class="identifier">ol</span><span class="special">-></span><span class="identifier">owns_lock</span><span class="special">());</span>
|
||||||
|
</pre>
|
||||||
|
</li>
|
||||||
|
</ul></div>
|
||||||
|
<p>
|
||||||
|
<span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
|
||||||
|
</p>
|
||||||
|
<a name="reference_optional_in_place_init_if"></a><div class="blockquote"><blockquote class="blockquote"><p>
|
||||||
|
<code class="computeroutput"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span><span class="special">...</span> <span class="identifier">Args</span><span class="special">></span>
|
||||||
|
<span class="keyword">explicit</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">optional</span><span class="special">(</span> <span class="identifier">in_place_init_if_t</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">condition</span><span class="special">,</span>
|
||||||
|
<span class="identifier">Args</span><span class="special">&&...</span>
|
||||||
|
<span class="identifier">ars</span> <span class="special">);</span></code>
|
||||||
|
</p></blockquote></div>
|
||||||
|
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||||
|
<li class="listitem">
|
||||||
|
<span class="bold"><strong>Requires:</strong></span> <code class="computeroutput"><span class="identifier">is_constructible_v</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Args</span><span class="special">&&...></span></code> is <code class="computeroutput"><span class="keyword">true</span></code>.
|
||||||
|
</li>
|
||||||
|
<li class="listitem">
|
||||||
|
<span class="bold"><strong>Effect:</strong></span> If <code class="computeroutput"><span class="identifier">condition</span></code>
|
||||||
|
is <code class="computeroutput"><span class="keyword">true</span></code>, initializes the
|
||||||
|
contained value as if direct-non-list-initializing an object of type
|
||||||
|
<code class="computeroutput"><span class="identifier">T</span></code> with the arguments
|
||||||
|
<code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">forward</span><span class="special"><</span><span class="identifier">Args</span><span class="special">>(</span><span class="identifier">args</span><span class="special">)...</span></code>.
|
||||||
|
</li>
|
||||||
|
<li class="listitem">
|
||||||
|
<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">condition</span></code>.
|
||||||
|
</li>
|
||||||
|
<li class="listitem">
|
||||||
|
<span class="bold"><strong>Throws:</strong></span> Any exception thrown by the
|
||||||
|
selected constructor of <code class="computeroutput"><span class="identifier">T</span></code>.
|
||||||
|
</li>
|
||||||
|
<li class="listitem">
|
||||||
|
<span class="bold"><strong>Notes: </strong></span> <code class="computeroutput"><span class="identifier">T</span></code>
|
||||||
|
need not be <code class="computeroutput"><span class="identifier">MoveConstructible</span></code>.
|
||||||
|
On compilers that do not suppor variadic templates or rvalue references,
|
||||||
|
this constuctor is available in limited functionality. For details
|
||||||
|
<a class="link" href="../../dependencies_and_portability/emplace_operations_in_older_compilers.html#optional_emplace_workaround">see here</a>.
|
||||||
|
</li>
|
||||||
|
<li class="listitem">
|
||||||
|
<span class="bold"><strong>Example:</strong></span>
|
||||||
|
<pre class="programlisting"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">>></span> <span class="identifier">ov1</span> <span class="special">{</span><span class="identifier">in_place_init_if</span><span class="special">,</span> <span class="keyword">false</span><span class="special">,</span> <span class="number">3</span><span class="special">,</span> <span class="string">"A"</span><span class="special">};</span>
|
||||||
|
<span class="identifier">assert</span> <span class="special">(!</span><span class="identifier">ov1</span><span class="special">);</span>
|
||||||
|
|
||||||
|
<span class="identifier">optional</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">>></span> <span class="identifier">ov2</span> <span class="special">{</span><span class="identifier">in_place_init_if</span><span class="special">,</span> <span class="keyword">true</span><span class="special">,</span> <span class="number">3</span><span class="special">,</span> <span class="string">"A"</span><span class="special">};</span>
|
||||||
|
<span class="identifier">assert</span> <span class="special">(</span><span class="identifier">ov2</span><span class="special">);</span>
|
||||||
|
<span class="identifier">assert</span> <span class="special">(</span><span class="identifier">ov2</span><span class="special">-></span><span class="identifier">size</span><span class="special">()</span> <span class="special">==</span> <span class="number">3</span><span class="special">);</span>
|
||||||
|
</pre>
|
||||||
|
</li>
|
||||||
|
</ul></div>
|
||||||
<p>
|
<p>
|
||||||
<span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
|
<span class="inlinemediaobject"><img src="../../../images/space.png" alt="space"></span>
|
||||||
</p>
|
</p>
|
||||||
@ -1037,15 +1125,8 @@
|
|||||||
<span class="bold"><strong>Notes:</strong></span> <code class="computeroutput"><span class="identifier">T</span></code>
|
<span class="bold"><strong>Notes:</strong></span> <code class="computeroutput"><span class="identifier">T</span></code>
|
||||||
need not be <code class="computeroutput"><span class="identifier">MoveConstructible</span></code>
|
need not be <code class="computeroutput"><span class="identifier">MoveConstructible</span></code>
|
||||||
or <code class="computeroutput"><span class="identifier">MoveAssignable</span></code>.
|
or <code class="computeroutput"><span class="identifier">MoveAssignable</span></code>.
|
||||||
On compilers that do not support variadic templates, the signature
|
On compilers that do not suppor variadic templates or rvalue references,
|
||||||
falls back to two overloads:<code class="computeroutput"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span>
|
this function is available in limited functionality. For details <a class="link" href="../../dependencies_and_portability/emplace_operations_in_older_compilers.html#optional_emplace_workaround">see here</a>.
|
||||||
<span class="identifier">Arg</span><span class="special">></span>
|
|
||||||
<span class="keyword">void</span> <span class="identifier">emplace</span><span class="special">(</span><span class="identifier">Arg</span><span class="special">&&</span> <span class="identifier">arg</span><span class="special">)</span></code> and <code class="computeroutput"><span class="keyword">void</span>
|
|
||||||
<span class="identifier">emplace</span><span class="special">()</span></code>.
|
|
||||||
On compilers that do not support rvalue references, the signature falls
|
|
||||||
back to three overloads: taking <code class="computeroutput"><span class="keyword">const</span></code>
|
|
||||||
and non-<code class="computeroutput"><span class="keyword">const</span></code> lvalue reference,
|
|
||||||
and third with empty function argument list.
|
|
||||||
</li>
|
</li>
|
||||||
<li class="listitem">
|
<li class="listitem">
|
||||||
<span class="bold"><strong>Example:</strong></span>
|
<span class="bold"><strong>Example:</strong></span>
|
||||||
|
@ -0,0 +1,61 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||||
|
<title>Initialization tags</title>
|
||||||
|
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
|
||||||
|
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||||
|
<link rel="home" href="../../../index.html" title="Boost.Optional">
|
||||||
|
<link rel="up" href="../../../optional/reference/header__boost_optional_optional_hpp_.html" title="Header <boost/optional/optional.hpp>">
|
||||||
|
<link rel="prev" href="../../../optional/reference/header__boost_optional_optional_hpp_.html" title="Header <boost/optional/optional.hpp>">
|
||||||
|
<link rel="next" href="header_optional_optional_values.html" title="Optional Values">
|
||||||
|
</head>
|
||||||
|
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||||
|
<table cellpadding="2" width="100%"><tr>
|
||||||
|
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
|
||||||
|
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
|
||||||
|
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
|
||||||
|
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||||
|
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||||
|
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
|
||||||
|
</tr></table>
|
||||||
|
<hr>
|
||||||
|
<div class="spirit-nav">
|
||||||
|
<a accesskey="p" href="../../../optional/reference/header__boost_optional_optional_hpp_.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_optional_optional_values.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||||
|
</div>
|
||||||
|
<div class="section">
|
||||||
|
<div class="titlepage"><div><div><h4 class="title">
|
||||||
|
<a name="boost_optional.reference.header__boost_optional_optional_hpp_.header_optional_in_place_init"></a><a class="link" href="header_optional_in_place_init.html" title="Initialization tags">Initialization
|
||||||
|
tags</a>
|
||||||
|
</h4></div></div></div>
|
||||||
|
<a name="reference_in_place_init"></a><a name="reference_in_place_init_if"></a><pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
|
||||||
|
|
||||||
|
<span class="keyword">class</span> <span class="identifier">in_place_init_t</span> <span class="special">{</span> <span class="comment">/* see below */</span> <span class="special">}</span> <span class="special">;</span>
|
||||||
|
<span class="keyword">const</span> <span class="identifier">in_place_init_t</span> <span class="identifier">in_place_init</span> <span class="special">(</span> <span class="comment">/* see below */</span> <span class="special">)</span> <span class="special">;</span>
|
||||||
|
|
||||||
|
<span class="keyword">class</span> <span class="identifier">in_place_init_if_t</span> <span class="special">{</span> <span class="comment">/*see below*/</span> <span class="special">}</span> <span class="special">;</span>
|
||||||
|
<span class="keyword">const</span> <span class="identifier">in_place_init_if_t</span> <span class="identifier">in_place_init_if</span> <span class="special">(</span> <span class="comment">/*see below*/</span> <span class="special">)</span> <span class="special">;</span>
|
||||||
|
|
||||||
|
<span class="special">}</span>
|
||||||
|
</pre>
|
||||||
|
<p>
|
||||||
|
Classes <code class="computeroutput"><span class="identifier">in_place_init_t</span></code>
|
||||||
|
and <code class="computeroutput"><span class="identifier">in_place_init_if_t</span></code>
|
||||||
|
are empty clsses. Their purpose is to control overload resolution in the
|
||||||
|
initialization of optional objects. They are empty, trivially copyable
|
||||||
|
classes with disabled default constructor.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||||
|
<td align="left"></td>
|
||||||
|
<td align="right"><div class="copyright-footer">Copyright © 2003-2007 Fernando Luis Cacciola Carballal<br>Copyright © 2014-2016 Andrzej Krzemieński<p>
|
||||||
|
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
|
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>)
|
||||||
|
</p>
|
||||||
|
</div></td>
|
||||||
|
</tr></table>
|
||||||
|
<hr>
|
||||||
|
<div class="spirit-nav">
|
||||||
|
<a accesskey="p" href="../../../optional/reference/header__boost_optional_optional_hpp_.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_optional_optional_values.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -6,7 +6,7 @@
|
|||||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||||
<link rel="home" href="../../../index.html" title="Boost.Optional">
|
<link rel="home" href="../../../index.html" title="Boost.Optional">
|
||||||
<link rel="up" href="../../../optional/reference/header__boost_optional_optional_hpp_.html" title="Header <boost/optional/optional.hpp>">
|
<link rel="up" href="../../../optional/reference/header__boost_optional_optional_hpp_.html" title="Header <boost/optional/optional.hpp>">
|
||||||
<link rel="prev" href="../../../optional/reference/header__boost_optional_optional_hpp_.html" title="Header <boost/optional/optional.hpp>">
|
<link rel="prev" href="header_optional_in_place_init.html" title="Initialization tags">
|
||||||
<link rel="next" href="header_optional_optional_refs.html" title="Optional References">
|
<link rel="next" href="header_optional_optional_refs.html" title="Optional References">
|
||||||
</head>
|
</head>
|
||||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||||
@ -20,7 +20,7 @@
|
|||||||
</tr></table>
|
</tr></table>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="spirit-nav">
|
<div class="spirit-nav">
|
||||||
<a accesskey="p" href="../../../optional/reference/header__boost_optional_optional_hpp_.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_optional_optional_refs.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
|
<a accesskey="p" href="header_optional_in_place_init.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_optional_optional_refs.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="section">
|
<div class="section">
|
||||||
<div class="titlepage"><div><div><h4 class="title">
|
<div class="titlepage"><div><div><h4 class="title">
|
||||||
@ -47,7 +47,6 @@
|
|||||||
|
|
||||||
<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> <span class="special">;</span> <a class="link" href="detailed_semantics___optional_values.html#reference_optional_constructor_move_value"><span class="inlinemediaobject"><img src="../../../images/callouts/R.png" alt="R"></span></a>
|
<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> <span class="special">;</span> <a class="link" href="detailed_semantics___optional_values.html#reference_optional_constructor_move_value"><span class="inlinemediaobject"><img src="../../../images/callouts/R.png" alt="R"></span></a>
|
||||||
|
|
||||||
<span class="comment">// [new in 1.34]</span>
|
|
||||||
<span class="identifier">optional</span> <span class="special">(</span> <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> <span class="special">;</span> <a class="link" href="detailed_semantics___optional_values.html#reference_optional_constructor_bool_value"><span class="inlinemediaobject"><img src="../../../images/callouts/R.png" alt="R"></span></a>
|
<span class="identifier">optional</span> <span class="special">(</span> <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> <span class="special">;</span> <a class="link" href="detailed_semantics___optional_values.html#reference_optional_constructor_bool_value"><span class="inlinemediaobject"><img src="../../../images/callouts/R.png" alt="R"></span></a>
|
||||||
|
|
||||||
<span class="identifier">optional</span> <span class="special">(</span> <span class="identifier">optional</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span> <span class="special">)</span> <span class="special">;</span> <a class="link" href="detailed_semantics___optional_values.html#reference_optional_constructor_optional"><span class="inlinemediaobject"><img src="../../../images/callouts/R.png" alt="R"></span></a>
|
<span class="identifier">optional</span> <span class="special">(</span> <span class="identifier">optional</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span> <span class="special">)</span> <span class="special">;</span> <a class="link" href="detailed_semantics___optional_values.html#reference_optional_constructor_optional"><span class="inlinemediaobject"><img src="../../../images/callouts/R.png" alt="R"></span></a>
|
||||||
@ -58,6 +57,10 @@
|
|||||||
|
|
||||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span> <span class="keyword">explicit</span> <span class="identifier">optional</span> <span class="special">(</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">U</span><span class="special">>&&</span> <span class="identifier">rhs</span> <span class="special">)</span> <span class="special">;</span> <a class="link" href="detailed_semantics___optional_values.html#reference_optional_move_constructor_other_optional"><span class="inlinemediaobject"><img src="../../../images/callouts/R.png" alt="R"></span></a>
|
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span> <span class="keyword">explicit</span> <span class="identifier">optional</span> <span class="special">(</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">U</span><span class="special">>&&</span> <span class="identifier">rhs</span> <span class="special">)</span> <span class="special">;</span> <a class="link" href="detailed_semantics___optional_values.html#reference_optional_move_constructor_other_optional"><span class="inlinemediaobject"><img src="../../../images/callouts/R.png" alt="R"></span></a>
|
||||||
|
|
||||||
|
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span><span class="special">...</span> <span class="identifier">Args</span><span class="special">></span> <span class="keyword">explicit</span> <span class="identifier">optional</span> <span class="special">(</span> <span class="identifier">in_place_init_t</span><span class="special">,</span> <span class="identifier">Args</span><span class="special">&&...</span> <span class="identifier">args</span> <span class="special">)</span> <span class="special">;</span> <a class="link" href="detailed_semantics___optional_values.html#reference_optional_in_place_init"><span class="inlinemediaobject"><img src="../../../images/callouts/R.png" alt="R"></span></a>
|
||||||
|
|
||||||
|
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span><span class="special">...</span> <span class="identifier">Args</span><span class="special">></span> <span class="keyword">explicit</span> <span class="identifier">optional</span> <span class="special">(</span> <span class="identifier">in_place_init_if_t</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">condition</span><span class="special">,</span> <span class="identifier">Args</span><span class="special">&&...</span> <span class="identifier">args</span> <span class="special">)</span> <span class="special">;</span> <a class="link" href="detailed_semantics___optional_values.html#reference_optional_in_place_init_if"><span class="inlinemediaobject"><img src="../../../images/callouts/R.png" alt="R"></span></a>
|
||||||
|
|
||||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">InPlaceFactory</span><span class="special">></span> <span class="keyword">explicit</span> <span class="identifier">optional</span> <span class="special">(</span> <span class="identifier">InPlaceFactory</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">f</span> <span class="special">)</span> <span class="special">;</span> <a class="link" href="detailed_semantics___optional_values.html#reference_optional_constructor_factory"><span class="inlinemediaobject"><img src="../../../images/callouts/R.png" alt="R"></span></a>
|
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">InPlaceFactory</span><span class="special">></span> <span class="keyword">explicit</span> <span class="identifier">optional</span> <span class="special">(</span> <span class="identifier">InPlaceFactory</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">f</span> <span class="special">)</span> <span class="special">;</span> <a class="link" href="detailed_semantics___optional_values.html#reference_optional_constructor_factory"><span class="inlinemediaobject"><img src="../../../images/callouts/R.png" alt="R"></span></a>
|
||||||
|
|
||||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">TypedInPlaceFactory</span><span class="special">></span> <span class="keyword">explicit</span> <span class="identifier">optional</span> <span class="special">(</span> <span class="identifier">TypedInPlaceFactory</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">f</span> <span class="special">)</span> <span class="special">;</span> <a class="link" href="detailed_semantics___optional_values.html#reference_optional_constructor_factory"><span class="inlinemediaobject"><img src="../../../images/callouts/R.png" alt="R"></span></a>
|
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">TypedInPlaceFactory</span><span class="special">></span> <span class="keyword">explicit</span> <span class="identifier">optional</span> <span class="special">(</span> <span class="identifier">TypedInPlaceFactory</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">f</span> <span class="special">)</span> <span class="special">;</span> <a class="link" href="detailed_semantics___optional_values.html#reference_optional_constructor_factory"><span class="inlinemediaobject"><img src="../../../images/callouts/R.png" alt="R"></span></a>
|
||||||
@ -135,7 +138,7 @@
|
|||||||
</tr></table>
|
</tr></table>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="spirit-nav">
|
<div class="spirit-nav">
|
||||||
<a accesskey="p" href="../../../optional/reference/header__boost_optional_optional_hpp_.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_optional_optional_refs.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
|
<a accesskey="p" href="header_optional_in_place_init.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_optional_optional_refs.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -28,6 +28,22 @@
|
|||||||
</h2></div></div></div>
|
</h2></div></div></div>
|
||||||
<h4>
|
<h4>
|
||||||
<a name="boost_optional.relnotes.h0"></a>
|
<a name="boost_optional.relnotes.h0"></a>
|
||||||
|
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_63"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_63">Boost
|
||||||
|
Release 1.63</a>
|
||||||
|
</h4>
|
||||||
|
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||||
|
<li class="listitem">
|
||||||
|
Added two new in-place constructors. They work similarly to <code class="computeroutput"><span class="identifier">emplace</span><span class="special">()</span></code>
|
||||||
|
functions: they initialize the contained value by perfect-forwarding the
|
||||||
|
obtained arguments. One constructor always initializes the contained value,
|
||||||
|
the other based on a boolean condition.
|
||||||
|
</li>
|
||||||
|
<li class="listitem">
|
||||||
|
Fixed <a href="https://svn.boost.org/trac/boost/ticket/12203" target="_top">Trac #12203</a>.
|
||||||
|
</li>
|
||||||
|
</ul></div>
|
||||||
|
<h4>
|
||||||
|
<a name="boost_optional.relnotes.h1"></a>
|
||||||
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_62"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_62">Boost
|
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_62"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_62">Boost
|
||||||
Release 1.62</a>
|
Release 1.62</a>
|
||||||
</h4>
|
</h4>
|
||||||
@ -35,7 +51,7 @@
|
|||||||
Fixed <a href="https://svn.boost.org/trac/boost/ticket/12179" target="_top">Trac #12179</a>.
|
Fixed <a href="https://svn.boost.org/trac/boost/ticket/12179" target="_top">Trac #12179</a>.
|
||||||
</li></ul></div>
|
</li></ul></div>
|
||||||
<h4>
|
<h4>
|
||||||
<a name="boost_optional.relnotes.h1"></a>
|
<a name="boost_optional.relnotes.h2"></a>
|
||||||
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_61"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_61">Boost
|
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_61"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_61">Boost
|
||||||
Release 1.61</a>
|
Release 1.61</a>
|
||||||
</h4>
|
</h4>
|
||||||
@ -78,7 +94,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul></div>
|
</ul></div>
|
||||||
<h4>
|
<h4>
|
||||||
<a name="boost_optional.relnotes.h2"></a>
|
<a name="boost_optional.relnotes.h3"></a>
|
||||||
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_60"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_60">Boost
|
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_60"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_60">Boost
|
||||||
Release 1.60</a>
|
Release 1.60</a>
|
||||||
</h4>
|
</h4>
|
||||||
@ -89,7 +105,7 @@
|
|||||||
#11203</a>.
|
#11203</a>.
|
||||||
</li></ul></div>
|
</li></ul></div>
|
||||||
<h4>
|
<h4>
|
||||||
<a name="boost_optional.relnotes.h3"></a>
|
<a name="boost_optional.relnotes.h4"></a>
|
||||||
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_59"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_59">Boost
|
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_59"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_59">Boost
|
||||||
Release 1.59</a>
|
Release 1.59</a>
|
||||||
</h4>
|
</h4>
|
||||||
@ -103,7 +119,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul></div>
|
</ul></div>
|
||||||
<h4>
|
<h4>
|
||||||
<a name="boost_optional.relnotes.h4"></a>
|
<a name="boost_optional.relnotes.h5"></a>
|
||||||
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_58"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_58">Boost
|
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_58"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_58">Boost
|
||||||
Release 1.58</a>
|
Release 1.58</a>
|
||||||
</h4>
|
</h4>
|
||||||
@ -139,7 +155,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul></div>
|
</ul></div>
|
||||||
<h4>
|
<h4>
|
||||||
<a name="boost_optional.relnotes.h5"></a>
|
<a name="boost_optional.relnotes.h6"></a>
|
||||||
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_57"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_57">Boost
|
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_57"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_57">Boost
|
||||||
Release 1.57</a>
|
Release 1.57</a>
|
||||||
</h4>
|
</h4>
|
||||||
@ -149,7 +165,7 @@
|
|||||||
to fix C++03 compile error on <code class="computeroutput"><span class="identifier">logic_error</span><span class="special">(</span><span class="string">"..."</span><span class="special">)</span></code>"</em></span>.
|
to fix C++03 compile error on <code class="computeroutput"><span class="identifier">logic_error</span><span class="special">(</span><span class="string">"..."</span><span class="special">)</span></code>"</em></span>.
|
||||||
</li></ul></div>
|
</li></ul></div>
|
||||||
<h4>
|
<h4>
|
||||||
<a name="boost_optional.relnotes.h6"></a>
|
<a name="boost_optional.relnotes.h7"></a>
|
||||||
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_56"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_56">Boost
|
<span class="phrase"><a name="boost_optional.relnotes.boost_release_1_56"></a></span><a class="link" href="relnotes.html#boost_optional.relnotes.boost_release_1_56">Boost
|
||||||
Release 1.56</a>
|
Release 1.56</a>
|
||||||
</h4>
|
</h4>
|
||||||
|
@ -89,6 +89,8 @@
|
|||||||
and Portability</a></span></dt>
|
and Portability</a></span></dt>
|
||||||
<dd><dl>
|
<dd><dl>
|
||||||
<dt><span class="section"><a href="boost_optional/dependencies_and_portability.html#boost_optional.dependencies_and_portability.dependencies">Dependencies</a></span></dt>
|
<dt><span class="section"><a href="boost_optional/dependencies_and_portability.html#boost_optional.dependencies_and_portability.dependencies">Dependencies</a></span></dt>
|
||||||
|
<dt><span class="section"><a href="boost_optional/dependencies_and_portability/emplace_operations_in_older_compilers.html">Emplace
|
||||||
|
operations in older compilers</a></span></dt>
|
||||||
<dt><span class="section"><a href="boost_optional/dependencies_and_portability/optional_reference_binding.html">Optional
|
<dt><span class="section"><a href="boost_optional/dependencies_and_portability/optional_reference_binding.html">Optional
|
||||||
Reference Binding</a></span></dt>
|
Reference Binding</a></span></dt>
|
||||||
</dl></dd>
|
</dl></dd>
|
||||||
@ -143,7 +145,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||||
<td align="left"><p><small>Last revised: September 16, 2016 at 23:43:36 GMT</small></p></td>
|
<td align="left"><p><small>Last revised: October 27, 2016 at 21:57:04 GMT</small></p></td>
|
||||||
<td align="right"><div class="copyright-footer"></div></td>
|
<td align="right"><div class="copyright-footer"></div></td>
|
||||||
</tr></table>
|
</tr></table>
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<link rel="home" href="../../index.html" title="Boost.Optional">
|
<link rel="home" href="../../index.html" title="Boost.Optional">
|
||||||
<link rel="up" href="../reference.html" title="Reference">
|
<link rel="up" href="../reference.html" title="Reference">
|
||||||
<link rel="prev" href="../../boost_optional/reference/header__boost_optional_optional_fwd_hpp_.html" title="Header <boost/optional/optional_fwd.hpp>">
|
<link rel="prev" href="../../boost_optional/reference/header__boost_optional_optional_fwd_hpp_.html" title="Header <boost/optional/optional_fwd.hpp>">
|
||||||
<link rel="next" href="../../boost_optional/reference/header__boost_optional_optional_hpp_/header_optional_optional_values.html" title="Optional Values">
|
<link rel="next" href="../../boost_optional/reference/header__boost_optional_optional_hpp_/header_optional_in_place_init.html" title="Initialization tags">
|
||||||
</head>
|
</head>
|
||||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||||
<table cellpadding="2" width="100%"><tr>
|
<table cellpadding="2" width="100%"><tr>
|
||||||
@ -20,7 +20,7 @@
|
|||||||
</tr></table>
|
</tr></table>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="spirit-nav">
|
<div class="spirit-nav">
|
||||||
<a accesskey="p" href="../../boost_optional/reference/header__boost_optional_optional_fwd_hpp_.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="../../boost_optional/reference/header__boost_optional_optional_hpp_/header_optional_optional_values.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
|
<a accesskey="p" href="../../boost_optional/reference/header__boost_optional_optional_fwd_hpp_.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="../../boost_optional/reference/header__boost_optional_optional_hpp_/header_optional_in_place_init.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="section">
|
<div class="section">
|
||||||
<div class="titlepage"><div><div><h3 class="title">
|
<div class="titlepage"><div><div><h3 class="title">
|
||||||
@ -35,6 +35,12 @@
|
|||||||
|
|
||||||
<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
|
<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
|
||||||
|
|
||||||
|
<span class="keyword">class</span> <span class="identifier">in_place_init_t</span> <span class="special">{</span> <span class="comment">/* see below */</span> <span class="special">}</span> <span class="special">;</span> <a class="link" href="../../boost_optional/reference/header__boost_optional_optional_hpp_/header_optional_in_place_init.html#reference_in_place_init"><span class="inlinemediaobject"><img src="../../images/callouts/R.png" alt="R"></span></a>
|
||||||
|
<span class="keyword">const</span> <span class="identifier">in_place_init_t</span> <span class="identifier">in_place_init</span> <span class="special">(</span> <span class="comment">/* see below */</span> <span class="special">)</span> <span class="special">;</span>
|
||||||
|
|
||||||
|
<span class="keyword">class</span> <span class="identifier">in_place_init_if_t</span> <span class="special">{</span> <span class="comment">/*see below*/</span> <span class="special">}</span> <span class="special">;</span> <a class="link" href="../../boost_optional/reference/header__boost_optional_optional_hpp_/header_optional_in_place_init.html#reference_in_place_init_if"><span class="inlinemediaobject"><img src="../../images/callouts/R.png" alt="R"></span></a>
|
||||||
|
<span class="keyword">const</span> <span class="identifier">in_place_init_if_t</span> <span class="identifier">in_place_init_if</span> <span class="special">(</span> <span class="comment">/*see below*/</span> <span class="special">)</span> <span class="special">;</span>
|
||||||
|
|
||||||
<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">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
|
||||||
<span class="keyword">class</span> <span class="identifier">optional</span> <span class="special">;</span> <a class="link" href="../../boost_optional/reference/header__boost_optional_optional_hpp_/header_optional_optional_values.html#reference_operator_template"><span class="inlinemediaobject"><img src="../../images/callouts/R.png" alt="R"></span></a>
|
<span class="keyword">class</span> <span class="identifier">optional</span> <span class="special">;</span> <a class="link" href="../../boost_optional/reference/header__boost_optional_optional_hpp_/header_optional_optional_values.html#reference_operator_template"><span class="inlinemediaobject"><img src="../../images/callouts/R.png" alt="R"></span></a>
|
||||||
|
|
||||||
@ -95,7 +101,7 @@
|
|||||||
</tr></table>
|
</tr></table>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="spirit-nav">
|
<div class="spirit-nav">
|
||||||
<a accesskey="p" href="../../boost_optional/reference/header__boost_optional_optional_fwd_hpp_.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="../../boost_optional/reference/header__boost_optional_optional_hpp_/header_optional_optional_values.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
|
<a accesskey="p" href="../../boost_optional/reference/header__boost_optional_optional_fwd_hpp_.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="../../boost_optional/reference/header__boost_optional_optional_hpp_/header_optional_in_place_init.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
Reference in New Issue
Block a user