3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>Reference</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="The Boost C++ Libraries BoostBook Documentation Subset">
8 <link rel="up" href="../move.html" title="Chapter 19. Boost.Move">
9 <link rel="prev" href="release_notes.html" title="Release Notes">
10 <link rel="next" href="../boost/move_idp105408384.html" title="Function template move">
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>
22 <div class="spirit-nav">
23 <a accesskey="p" href="release_notes.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../move.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/move_idp105408384.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
26 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
27 <a name="move.reference"></a>Reference</h2></div></div></div>
28 <div class="toc"><dl class="toc">
29 <dt><span class="section"><a href="reference.html#header.boost.move.algorithm_hpp">Header <boost/move/algorithm.hpp></a></span></dt>
30 <dt><span class="section"><a href="reference.html#header.boost.move.core_hpp">Header <boost/move/core.hpp></a></span></dt>
31 <dt><span class="section"><a href="reference.html#header.boost.move.default_delete_hpp">Header <boost/move/default_delete.hpp></a></span></dt>
32 <dt><span class="section"><a href="reference.html#header.boost.move.iterator_hpp">Header <boost/move/iterator.hpp></a></span></dt>
33 <dt><span class="section"><a href="reference.html#header.boost.move.make_unique_hpp">Header <boost/move/make_unique.hpp></a></span></dt>
34 <dt><span class="section"><a href="reference.html#header.boost.move.move_hpp">Header <boost/move/move.hpp></a></span></dt>
35 <dt><span class="section"><a href="reference.html#header.boost.move.traits_hpp">Header <boost/move/traits.hpp></a></span></dt>
36 <dt><span class="section"><a href="reference.html#header.boost.move.unique_ptr_hpp">Header <boost/move/unique_ptr.hpp></a></span></dt>
37 <dt><span class="section"><a href="reference.html#header.boost.move.utility_hpp">Header <boost/move/utility.hpp></a></span></dt>
38 <dt><span class="section"><a href="reference.html#header.boost.move.utility_core_hpp">Header <boost/move/utility_core.hpp></a></span></dt>
41 <div class="titlepage"><div><div><h3 class="title">
42 <a name="header.boost.move.algorithm_hpp"></a>Header <<a href="../../../boost/move/algorithm.hpp" target="_top">boost/move/algorithm.hpp</a>></h3></div></div></div>
43 <pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
44 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> I<span class="special">,</span> <span class="keyword">typename</span> O<span class="special">></span> <span class="identifier">O</span> <a class="link" href="../boost/move_idp105408384.html" title="Function template move"><span class="identifier">move</span></a><span class="special">(</span><span class="identifier">I</span><span class="special">,</span> <span class="identifier">I</span><span class="special">,</span> <span class="identifier">O</span><span class="special">)</span><span class="special">;</span>
45 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> I<span class="special">,</span> <span class="keyword">typename</span> O<span class="special">></span> <span class="identifier">O</span> <a class="link" href="../boost/move_backward.html" title="Function template move_backward"><span class="identifier">move_backward</span></a><span class="special">(</span><span class="identifier">I</span><span class="special">,</span> <span class="identifier">I</span><span class="special">,</span> <span class="identifier">O</span><span class="special">)</span><span class="special">;</span>
46 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> I<span class="special">,</span> <span class="keyword">typename</span> F<span class="special">></span> <span class="identifier">F</span> <a class="link" href="../boost/uninitialized_move.html" title="Function template uninitialized_move"><span class="identifier">uninitialized_move</span></a><span class="special">(</span><span class="identifier">I</span><span class="special">,</span> <span class="identifier">I</span><span class="special">,</span> <span class="identifier">F</span><span class="special">)</span><span class="special">;</span>
47 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> I<span class="special">,</span> <span class="keyword">typename</span> F<span class="special">></span> <span class="identifier">F</span> <a class="link" href="../boost/uninitialized_copy_or_move.html" title="Function template uninitialized_copy_or_move"><span class="identifier">uninitialized_copy_or_move</span></a><span class="special">(</span><span class="identifier">I</span><span class="special">,</span> <span class="identifier">I</span><span class="special">,</span> <span class="identifier">F</span><span class="special">)</span><span class="special">;</span>
48 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> I<span class="special">,</span> <span class="keyword">typename</span> F<span class="special">></span> <span class="identifier">F</span> <a class="link" href="../boost/copy_or_move.html" title="Function template copy_or_move"><span class="identifier">copy_or_move</span></a><span class="special">(</span><span class="identifier">I</span><span class="special">,</span> <span class="identifier">I</span><span class="special">,</span> <span class="identifier">F</span><span class="special">)</span><span class="special">;</span>
49 <span class="special">}</span></pre>
52 <div class="titlepage"><div><div><h3 class="title">
53 <a name="header.boost.move.core_hpp"></a>Header <<a href="../../../boost/move/core.hpp" target="_top">boost/move/core.hpp</a>></h3></div></div></div>
54 <p>This header implements macros to define movable classes and move-aware functions </p>
55 <pre class="synopsis">
57 <a class="link" href="../BOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN.html" title="Macro BOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN">BOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN</a>(TYPE)
58 <a class="link" href="../BOOST_MOVABLE_BUT_NOT_COPYABLE.html" title="Macro BOOST_MOVABLE_BUT_NOT_COPYABLE">BOOST_MOVABLE_BUT_NOT_COPYABLE</a>(TYPE)
59 <a class="link" href="../BOOST_COPYABLE_AND_MOVABLE.html" title="Macro BOOST_COPYABLE_AND_MOVABLE">BOOST_COPYABLE_AND_MOVABLE</a>(TYPE)
60 <a class="link" href="../BOOST_RV_REF.html" title="Macro BOOST_RV_REF">BOOST_RV_REF</a>(TYPE)
61 <a class="link" href="../BOOST_RV_REF_BEG.html" title="Macro BOOST_RV_REF_BEG">BOOST_RV_REF_BEG</a>
62 <a class="link" href="../BOOST_RV_REF_END.html" title="Macro BOOST_RV_REF_END">BOOST_RV_REF_END</a>
63 <a class="link" href="../BOOST_COPY_ASSIGN_REF.html" title="Macro BOOST_COPY_ASSIGN_REF">BOOST_COPY_ASSIGN_REF</a>(TYPE)
64 <a class="link" href="../BOOST_FWD_REF.html" title="Macro BOOST_FWD_REF">BOOST_FWD_REF</a>(TYPE)
65 <a class="link" href="../BOOST_MOVE_RET.html" title="Macro BOOST_MOVE_RET">BOOST_MOVE_RET</a>(RET_TYPE, REF)</pre>
66 <pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
67 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../boost/has_move_emulation_enabled.html" title="Struct template has_move_emulation_enabled">has_move_emulation_enabled</a><span class="special">;</span>
68 <span class="special">}</span></pre>
71 <div class="titlepage"><div><div><h3 class="title">
72 <a name="header.boost.move.default_delete_hpp"></a>Header <<a href="../../../boost/move/default_delete.hpp" target="_top">boost/move/default_delete.hpp</a>></h3></div></div></div>
73 <p>Describes the default deleter (destruction policy) of <code class="computeroutput">unique_ptr</code>: <code class="computeroutput">default_delete</code>. </p>
74 <pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
75 <span class="keyword">namespace</span> <span class="identifier">move_upd</span> <span class="special">{</span>
76 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">,</span> <span class="keyword">typename</span> T<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../boost/move_upd/def_del_compatible_cond.html" title="Struct template def_del_compatible_cond">def_del_compatible_cond</a><span class="special">;</span>
77 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">,</span> <span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> Type <span class="special">=</span> <span class="identifier">bmupmu</span><span class="special">::</span><span class="identifier">nat</span><span class="special">></span>
78 <span class="keyword">struct</span> <a class="link" href="../boost/move_upd/enable_def_del.html" title="Struct template enable_def_del">enable_def_del</a><span class="special">;</span>
79 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">,</span> <span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> Type <span class="special">=</span> <span class="identifier">bmupmu</span><span class="special">::</span><span class="identifier">nat</span><span class="special">></span>
80 <span class="keyword">struct</span> <a class="link" href="../boost/move_upd/enable_defdel_call.html" title="Struct template enable_defdel_call">enable_defdel_call</a><span class="special">;</span>
81 <span class="keyword">struct</span> <a class="link" href="../boost/move_upd/bool_conversion.html" title="Struct bool_conversion">bool_conversion</a><span class="special">;</span>
83 <span class="keyword">typedef</span> <span class="keyword">int</span> <span class="identifier">bool_conversion</span><span class="special">::</span><span class="special">*</span> <a name="boost.move_upd.explicit_bool_arg"></a><span class="identifier">explicit_bool_arg</span><span class="special">;</span>
85 <span class="keyword">decltype</span><span class="special">(</span><span class="keyword">nullptr</span><span class="special">)</span> <span class="keyword">typedef</span> <a class="link" href="../boost/move_upd/nullptr_type.html" title="Global nullptr_type">nullptr_type</a><span class="special">;</span>
86 <span class="special">}</span>
87 <span class="keyword">namespace</span> <span class="identifier">movelib</span> <span class="special">{</span>
88 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../boost/movelib/default_delete.html" title="Struct template default_delete">default_delete</a><span class="special">;</span>
89 <span class="special">}</span>
90 <span class="special">}</span></pre>
93 <div class="titlepage"><div><div><h3 class="title">
94 <a name="header.boost.move.iterator_hpp"></a>Header <<a href="../../../boost/move/iterator.hpp" target="_top">boost/move/iterator.hpp</a>></h3></div></div></div>
95 <pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
96 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> It<span class="special">></span> <span class="keyword">class</span> <a class="link" href="../boost/move_iterator.html" title="Class template move_iterator">move_iterator</a><span class="special">;</span>
97 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> C<span class="special">></span> <span class="keyword">class</span> <a class="link" href="../boost/back_move_insert_iterator.html" title="Class template back_move_insert_iterator">back_move_insert_iterator</a><span class="special">;</span>
98 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> C<span class="special">></span> <span class="keyword">class</span> <a class="link" href="../boost/front_move_insert_iterator.html" title="Class template front_move_insert_iterator">front_move_insert_iterator</a><span class="special">;</span>
99 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> C<span class="special">></span> <span class="keyword">class</span> <a class="link" href="../boost/move_insert_iterator.html" title="Class template move_insert_iterator">move_insert_iterator</a><span class="special">;</span>
100 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> It<span class="special">></span> <a class="link" href="../boost/move_iterator.html" title="Class template move_iterator">move_iterator</a><span class="special"><</span> <span class="identifier">It</span> <span class="special">></span> <a class="link" href="../boost/make_move_iterator.html" title="Function template make_move_iterator"><span class="identifier">make_move_iterator</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">It</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
101 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> C<span class="special">></span> <a class="link" href="../boost/back_move_insert_iterator.html" title="Class template back_move_insert_iterator">back_move_insert_iterator</a><span class="special"><</span> <span class="identifier">C</span> <span class="special">></span> <a class="link" href="../boost/back_move_inserter.html" title="Function template back_move_inserter"><span class="identifier">back_move_inserter</span></a><span class="special">(</span><span class="identifier">C</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
102 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> C<span class="special">></span>
103 <a class="link" href="../boost/front_move_insert_iterator.html" title="Class template front_move_insert_iterator">front_move_insert_iterator</a><span class="special"><</span> <span class="identifier">C</span> <span class="special">></span> <a class="link" href="../boost/front_move_inserter.html" title="Function template front_move_inserter"><span class="identifier">front_move_inserter</span></a><span class="special">(</span><span class="identifier">C</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
104 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> C<span class="special">></span>
105 <span class="identifier">move_insert_iterator</span><span class="special"><</span> <span class="identifier">C</span> <span class="special">></span> <a class="link" href="../boost/move_inserter.html" title="Function template move_inserter"><span class="identifier">move_inserter</span></a><span class="special">(</span><span class="identifier">C</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">C</span><span class="special">::</span><span class="identifier">iterator</span><span class="special">)</span><span class="special">;</span>
106 <span class="special">}</span></pre>
108 <div class="section">
109 <div class="titlepage"><div><div><h3 class="title">
110 <a name="header.boost.move.make_unique_hpp"></a>Header <<a href="../../../boost/move/make_unique.hpp" target="_top">boost/move/make_unique.hpp</a>></h3></div></div></div>
111 <p>Defines "make_unique" functions, which are factories to create instances of unique_ptr depending on the passed arguments.</p>
112 <p>This header can be a bit heavyweight in C++03 compilers due to the use of the preprocessor library, that's why it's a a separate header from <code class="computeroutput">unique_ptr.hpp</code> </p>
113 <pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
114 <span class="keyword">namespace</span> <span class="identifier">movelib</span> <span class="special">{</span>
115 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">class</span><span class="special">...</span> Args<span class="special">></span>
116 <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span> <a class="link" href="../boost/movelib/make_unique_idp102671104.html" title="Function template make_unique"><span class="identifier">make_unique</span></a><span class="special">(</span><span class="identifier">Args</span> <span class="special">&&</span><span class="special">...</span><span class="special">)</span><span class="special">;</span>
117 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">class</span><span class="special">...</span> Args<span class="special">></span>
118 <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span> <a class="link" href="../boost/movelib/make_unique_n_idp146693984.html" title="Function template make_unique_nothrow"><span class="identifier">make_unique_nothrow</span></a><span class="special">(</span><span class="identifier">Args</span> <span class="special">&&</span><span class="special">...</span><span class="special">)</span><span class="special">;</span>
119 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span> <a class="link" href="../boost/movelib/make_unique_d_idp146699712.html" title="Function template make_unique_definit"><span class="identifier">make_unique_definit</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
120 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span> <a class="link" href="../boost/movelib/make_unique_n_idp161634944.html" title="Function template make_unique_nothrow_definit"><span class="identifier">make_unique_nothrow_definit</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
121 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span> <a class="link" href="../boost/movelib/make_unique_idp158748768.html" title="Function template make_unique"><span class="identifier">make_unique</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span><span class="special">;</span>
122 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span> <a class="link" href="../boost/movelib/make_unique_n_idp158753728.html" title="Function template make_unique_nothrow"><span class="identifier">make_unique_nothrow</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span><span class="special">;</span>
123 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span> <a class="link" href="../boost/movelib/make_unique_d_idp108564688.html" title="Function template make_unique_definit"><span class="identifier">make_unique_definit</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span><span class="special">;</span>
124 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span>
125 <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span> <a class="link" href="../boost/movelib/make_unique_n_idp159342464.html" title="Function template make_unique_nothrow_definit"><span class="identifier">make_unique_nothrow_definit</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span><span class="special">;</span>
126 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">class</span><span class="special">...</span> Args<span class="special">></span> <span class="identifier">unspecified</span> <a class="link" href="../boost/movelib/make_unique_idp159347488.html" title="Function template make_unique"><span class="identifier">make_unique</span></a><span class="special">(</span><span class="identifier">Args</span> <span class="special">&&</span><span class="special">)</span><span class="special">;</span>
127 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">class</span><span class="special">...</span> Args<span class="special">></span>
128 <span class="identifier">unspecified</span> <a class="link" href="../boost/movelib/make_unique_de_idp95956192.html" title="Function template make_unique_definit"><span class="identifier">make_unique_definit</span></a><span class="special">(</span><span class="identifier">Args</span> <span class="special">&&</span><span class="special">)</span><span class="special">;</span>
129 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">class</span><span class="special">...</span> Args<span class="special">></span>
130 <span class="identifier">unspecified</span> <a class="link" href="../boost/movelib/make_unique_n_idp113562384.html" title="Function template make_unique_nothrow"><span class="identifier">make_unique_nothrow</span></a><span class="special">(</span><span class="identifier">Args</span> <span class="special">&&</span><span class="special">)</span><span class="special">;</span>
131 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">class</span><span class="special">...</span> Args<span class="special">></span>
132 <span class="identifier">unspecified</span> <a class="link" href="../boost/movelib/make_unique_n_idp113566672.html" title="Function template make_unique_nothrow_definit"><span class="identifier">make_unique_nothrow_definit</span></a><span class="special">(</span><span class="identifier">Args</span> <span class="special">&&</span><span class="special">)</span><span class="special">;</span>
133 <span class="special">}</span>
134 <span class="special">}</span></pre>
136 <div class="section">
137 <div class="titlepage"><div><div><h3 class="title">
138 <a name="header.boost.move.move_hpp"></a>Header <<a href="../../../boost/move/move.hpp" target="_top">boost/move/move.hpp</a>></h3></div></div></div>
139 <p>A general library header that includes the rest of top-level headers. </p>
141 <div class="section">
142 <div class="titlepage"><div><div><h3 class="title">
143 <a name="header.boost.move.traits_hpp"></a>Header <<a href="../../../boost/move/traits.hpp" target="_top">boost/move/traits.hpp</a>></h3></div></div></div>
144 <pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
145 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../boost/has_trivial_d_idp150802208.html" title="Struct template has_trivial_destructor_after_move">has_trivial_destructor_after_move</a><span class="special">;</span>
146 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../boost/has_nothrow_move.html" title="Struct template has_nothrow_move">has_nothrow_move</a><span class="special">;</span>
147 <span class="special">}</span></pre>
149 <div class="section">
150 <div class="titlepage"><div><div><h3 class="title">
151 <a name="header.boost.move.unique_ptr_hpp"></a>Header <<a href="../../../boost/move/unique_ptr.hpp" target="_top">boost/move/unique_ptr.hpp</a>></h3></div></div></div>
152 <p>Describes the smart pointer unique_ptr, a drop-in replacement for std::unique_ptr, usable also from C++03 compilers.</p>
153 <p>Main differences from std::unique_ptr to avoid heavy dependencies, specially in C++03 compilers:</p>
154 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
155 <li class="listitem"><p><code class="computeroutput">operator < </code> uses pointer <code class="computeroutput">operator < </code>instead of <code class="computeroutput">std::less<common_type></code>. This avoids dependencies on <code class="computeroutput">std::common_type</code> and <code class="computeroutput">std::less</code> (<code class="computeroutput"><type_traits>/<functional></code> headers. In C++03 this avoid pulling Boost.Typeof and other cascading dependencies. As in all Boost platforms <code class="computeroutput">operator <</code> on raw pointers and other smart pointers provides strict weak ordering in practice this should not be a problem for users.</p></li>
156 <li class="listitem"><p>assignable from literal 0 for compilers without nullptr</p></li>
157 <li class="listitem"><p><code class="computeroutput">unique_ptr<T[]></code> is constructible and assignable from <code class="computeroutput">unique_ptr<U[]></code> if cv-less T and cv-less U are the same type and T is more CV qualified than U. </p></li>
161 <pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
162 <span class="keyword">namespace</span> <span class="identifier">move_upd</span> <span class="special">{</span>
163 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> D<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../boost/move_upd/deleter_types.html" title="Struct template deleter_types">deleter_types</a><span class="special">;</span>
164 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> P<span class="special">,</span> <span class="keyword">typename</span> D<span class="special">,</span>
165 <span class="keyword">bool</span> <span class="special">=</span> <span class="identifier">bmupmu</span><span class="special">::</span><span class="identifier">is_unary_function</span><span class="special"><</span><span class="identifier">D</span><span class="special">></span><span class="special">::</span><span class="identifier">value</span> <span class="special">||</span> <span class="identifier">bmupmu</span><span class="special">::</span><span class="identifier">is_reference</span><span class="special"><</span><span class="identifier">D</span><span class="special">></span><span class="special">::</span><span class="identifier">value</span><span class="special">></span>
166 <span class="keyword">struct</span> <a class="link" href="../boost/move_upd/unique_ptr_data.html" title="Struct template unique_ptr_data">unique_ptr_data</a><span class="special">;</span>
168 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> P<span class="special">,</span> <span class="keyword">typename</span> D<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../boost/move_upd/unique_ptr_da_idp151888768.html" title="Struct template unique_ptr_data<P, D, false>">unique_ptr_data</a><span class="special"><</span><span class="identifier">P</span><span class="special">,</span> <span class="identifier">D</span><span class="special">,</span> <span class="keyword">false</span><span class="special">></span><span class="special">;</span>
170 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../boost/move_upd/get_element_type.html" title="Struct template get_element_type">get_element_type</a><span class="special">;</span>
172 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../boost/move_upd/get_element_t_idp146280688.html" title="Struct template get_element_type<T *>">get_element_type</a><span class="special"><</span><span class="identifier">T</span> <span class="special">*</span><span class="special">></span><span class="special">;</span>
174 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../boost/move_upd/get_cvelement.html" title="Struct template get_cvelement">get_cvelement</a><span class="special">;</span>
175 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> P1<span class="special">,</span> <span class="keyword">typename</span> P2<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../boost/move_upd/is_same_cvele_idp103067728.html" title="Struct template is_same_cvelement_and_convertible">is_same_cvelement_and_convertible</a><span class="special">;</span>
176 <span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> IsArray<span class="special">,</span> <span class="keyword">typename</span> FromPointer<span class="special">,</span> <span class="keyword">typename</span> ThisPointer<span class="special">></span>
177 <span class="keyword">struct</span> <a class="link" href="../boost/move_upd/is_unique_ptr_convertible.html" title="Struct template is_unique_ptr_convertible">is_unique_ptr_convertible</a><span class="special">;</span>
179 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> FromPointer<span class="special">,</span> <span class="keyword">typename</span> ThisPointer<span class="special">></span>
180 <span class="keyword">struct</span> <a class="link" href="../boost/move_upd/is_unique_ptr_idp156082704.html" title="Struct template is_unique_ptr_convertible<false, FromPointer, ThisPointer>">is_unique_ptr_convertible</a><span class="special"><</span><span class="keyword">false</span><span class="special">,</span> <span class="identifier">FromPointer</span><span class="special">,</span> <span class="identifier">ThisPointer</span><span class="special">></span><span class="special">;</span>
182 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> FromPointer<span class="special">,</span> <span class="keyword">typename</span> ThisPointer<span class="special">,</span>
183 <span class="keyword">typename</span> Type <span class="special">=</span> <span class="identifier">bmupmu</span><span class="special">::</span><span class="identifier">nat</span><span class="special">></span>
184 <span class="keyword">struct</span> <a class="link" href="../boost/move_upd/enable_up_ptr.html" title="Struct template enable_up_ptr">enable_up_ptr</a><span class="special">;</span>
185 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> D<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">,</span> <span class="keyword">typename</span> E<span class="special">></span>
186 <span class="keyword">struct</span> <a class="link" href="../boost/move_upd/unique_moveco_idp144094368.html" title="Struct template unique_moveconvert_assignable">unique_moveconvert_assignable</a><span class="special">;</span>
187 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> D<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">,</span> <span class="keyword">typename</span> E<span class="special">,</span>
188 <span class="keyword">typename</span> Type <span class="special">=</span> <span class="identifier">bmupmu</span><span class="special">::</span><span class="identifier">nat</span><span class="special">></span>
189 <span class="keyword">struct</span> <a class="link" href="../boost/move_upd/enable_up_moveconv_assign.html" title="Struct template enable_up_moveconv_assign">enable_up_moveconv_assign</a><span class="special">;</span>
190 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> D<span class="special">,</span> <span class="keyword">typename</span> E<span class="special">,</span>
191 <span class="keyword">bool</span> IsReference <span class="special">=</span> <span class="identifier">bmupmu</span><span class="special">::</span><span class="identifier">is_reference</span><span class="special"><</span><span class="identifier">D</span><span class="special">></span><span class="special">::</span><span class="identifier">value</span><span class="special">></span>
192 <span class="keyword">struct</span> <a class="link" href="../boost/move_upd/unique_delete_idp144670112.html" title="Struct template unique_deleter_is_initializable">unique_deleter_is_initializable</a><span class="special">;</span>
194 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">class</span> <a class="link" href="../boost/move_upd/is_rvalue_convertible.html" title="Class template is_rvalue_convertible">is_rvalue_convertible</a><span class="special">;</span>
196 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> D<span class="special">,</span> <span class="keyword">typename</span> E<span class="special">></span>
197 <span class="keyword">struct</span> <a class="link" href="../boost/move_upd/unique_delete_idp146577344.html" title="Struct template unique_deleter_is_initializable<D, E, false>">unique_deleter_is_initializable</a><span class="special"><</span><span class="identifier">D</span><span class="special">,</span> <span class="identifier">E</span><span class="special">,</span> <span class="keyword">false</span><span class="special">></span><span class="special">;</span>
199 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> D<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">,</span> <span class="keyword">typename</span> E<span class="special">,</span>
200 <span class="keyword">typename</span> Type <span class="special">=</span> <span class="identifier">bmupmu</span><span class="special">::</span><span class="identifier">nat</span><span class="special">></span>
201 <span class="keyword">struct</span> <a class="link" href="../boost/move_upd/enable_up_moveconv_constr.html" title="Struct template enable_up_moveconv_constr">enable_up_moveconv_constr</a><span class="special">;</span>
202 <span class="special">}</span>
203 <span class="keyword">namespace</span> <span class="identifier">movelib</span> <span class="special">{</span>
204 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> D <span class="special">=</span> <a class="link" href="../boost/movelib/default_delete.html" title="Struct template default_delete">default_delete</a><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span> <span class="keyword">class</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special">;</span>
205 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> D<span class="special">></span>
206 <span class="keyword">void</span> <a class="link" href="../boost/movelib/swap_idp204373760.html" title="Function template swap"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">D</span> <span class="special">></span> <span class="special">&</span><span class="special">,</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">D</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
207 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T1<span class="special">,</span> <span class="keyword">typename</span> D1<span class="special">,</span> <span class="keyword">typename</span> T2<span class="special">,</span> <span class="keyword">typename</span> D2<span class="special">></span>
208 <span class="keyword">bool</span> <a class="link" href="../boost/movelib/operator___idp204309936.html" title="Function template operator=="><span class="keyword">operator</span><span class="special">==</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">D1</span> <span class="special">></span> <span class="special">&</span><span class="special">,</span>
209 <span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T2</span><span class="special">,</span> <span class="identifier">D2</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
210 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T1<span class="special">,</span> <span class="keyword">typename</span> D1<span class="special">,</span> <span class="keyword">typename</span> T2<span class="special">,</span> <span class="keyword">typename</span> D2<span class="special">></span>
211 <span class="keyword">bool</span> <a class="link" href="../boost/movelib/operator___idp202808704.html" title="Function template operator!="><span class="keyword">operator</span><span class="special">!=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">D1</span> <span class="special">></span> <span class="special">&</span><span class="special">,</span>
212 <span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T2</span><span class="special">,</span> <span class="identifier">D2</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
213 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T1<span class="special">,</span> <span class="keyword">typename</span> D1<span class="special">,</span> <span class="keyword">typename</span> T2<span class="special">,</span> <span class="keyword">typename</span> D2<span class="special">></span>
214 <span class="keyword">bool</span> <a class="link" href="../boost/movelib/operator_idp202777392.html" title="Function template operator<"><span class="keyword">operator</span><span class="special"><</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">D1</span> <span class="special">></span> <span class="special">&</span><span class="special">,</span>
215 <span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T2</span><span class="special">,</span> <span class="identifier">D2</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
216 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T1<span class="special">,</span> <span class="keyword">typename</span> D1<span class="special">,</span> <span class="keyword">typename</span> T2<span class="special">,</span> <span class="keyword">typename</span> D2<span class="special">></span>
217 <span class="keyword">bool</span> <a class="link" href="../boost/movelib/operator___idp202746400.html" title="Function template operator<="><span class="keyword">operator</span><span class="special"><=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">D1</span> <span class="special">></span> <span class="special">&</span><span class="special">,</span>
218 <span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T2</span><span class="special">,</span> <span class="identifier">D2</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
219 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T1<span class="special">,</span> <span class="keyword">typename</span> D1<span class="special">,</span> <span class="keyword">typename</span> T2<span class="special">,</span> <span class="keyword">typename</span> D2<span class="special">></span>
220 <span class="keyword">bool</span> <a class="link" href="../boost/movelib/operator_idp199897216.html" title="Function template operator>"><span class="keyword">operator</span><span class="special">></span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">D1</span> <span class="special">></span> <span class="special">&</span><span class="special">,</span>
221 <span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T2</span><span class="special">,</span> <span class="identifier">D2</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
222 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T1<span class="special">,</span> <span class="keyword">typename</span> D1<span class="special">,</span> <span class="keyword">typename</span> T2<span class="special">,</span> <span class="keyword">typename</span> D2<span class="special">></span>
223 <span class="keyword">bool</span> <a class="link" href="../boost/movelib/operator___idp153672080.html" title="Function template operator>="><span class="keyword">operator</span><span class="special">>=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">D1</span> <span class="special">></span> <span class="special">&</span><span class="special">,</span>
224 <span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T2</span><span class="special">,</span> <span class="identifier">D2</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
225 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> D<span class="special">></span>
226 <span class="keyword">bool</span> <a class="link" href="../boost/movelib/operator___idp73594208.html" title="Function template operator=="><span class="keyword">operator</span><span class="special">==</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">D</span> <span class="special">></span> <span class="special">&</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">nullptr_t</span><span class="special">)</span><span class="special">;</span>
227 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> D<span class="special">></span>
228 <span class="keyword">bool</span> <a class="link" href="../boost/movelib/operator___idp226834048.html" title="Function template operator=="><span class="keyword">operator</span><span class="special">==</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">nullptr_t</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">D</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
229 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> D<span class="special">></span>
230 <span class="keyword">bool</span> <a class="link" href="../boost/movelib/operator___idp226839104.html" title="Function template operator!="><span class="keyword">operator</span><span class="special">!=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">D</span> <span class="special">></span> <span class="special">&</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">nullptr_t</span><span class="special">)</span><span class="special">;</span>
231 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> D<span class="special">></span>
232 <span class="keyword">bool</span> <a class="link" href="../boost/movelib/operator___idp212890688.html" title="Function template operator!="><span class="keyword">operator</span><span class="special">!=</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">nullptr_t</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">D</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
233 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> D<span class="special">></span>
234 <span class="keyword">bool</span> <a class="link" href="../boost/movelib/operator_idp150805968.html" title="Function template operator<"><span class="keyword">operator</span><span class="special"><</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">D</span> <span class="special">></span> <span class="special">&</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">nullptr_t</span><span class="special">)</span><span class="special">;</span>
235 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> D<span class="special">></span>
236 <span class="keyword">bool</span> <a class="link" href="../boost/movelib/operator_idp154714400.html" title="Function template operator<"><span class="keyword">operator</span><span class="special"><</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">nullptr_t</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">D</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
237 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> D<span class="special">></span>
238 <span class="keyword">bool</span> <a class="link" href="../boost/movelib/operator_idp154721168.html" title="Function template operator>"><span class="keyword">operator</span><span class="special">></span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">D</span> <span class="special">></span> <span class="special">&</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">nullptr_t</span><span class="special">)</span><span class="special">;</span>
239 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> D<span class="special">></span>
240 <span class="keyword">bool</span> <a class="link" href="../boost/movelib/operator_idp143934048.html" title="Function template operator>"><span class="keyword">operator</span><span class="special">></span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">nullptr_t</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">D</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
241 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> D<span class="special">></span>
242 <span class="keyword">bool</span> <a class="link" href="../boost/movelib/operator___idp143980080.html" title="Function template operator<="><span class="keyword">operator</span><span class="special"><=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">D</span> <span class="special">></span> <span class="special">&</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">nullptr_t</span><span class="special">)</span><span class="special">;</span>
243 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> D<span class="special">></span>
244 <span class="keyword">bool</span> <a class="link" href="../boost/movelib/operator___idp144603088.html" title="Function template operator<="><span class="keyword">operator</span><span class="special"><=</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">nullptr_t</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">D</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
245 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> D<span class="special">></span>
246 <span class="keyword">bool</span> <a class="link" href="../boost/movelib/operator___idp144608592.html" title="Function template operator>="><span class="keyword">operator</span><span class="special">>=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">D</span> <span class="special">></span> <span class="special">&</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">nullptr_t</span><span class="special">)</span><span class="special">;</span>
247 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> D<span class="special">></span>
248 <span class="keyword">bool</span> <a class="link" href="../boost/movelib/operator___idp161526352.html" title="Function template operator>="><span class="keyword">operator</span><span class="special">>=</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">nullptr_t</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../boost/movelib/unique_ptr.html" title="Class template unique_ptr">unique_ptr</a><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">D</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
249 <span class="special">}</span>
250 <span class="special">}</span></pre>
252 <div class="section">
253 <div class="titlepage"><div><div><h3 class="title">
254 <a name="header.boost.move.utility_hpp"></a>Header <<a href="../../../boost/move/utility.hpp" target="_top">boost/move/utility.hpp</a>></h3></div></div></div>
255 <p>This header includes core utilities from <code class="computeroutput"><boost/move/utility_core.hpp></code> and defines some more advanced utilities such as: </p>
256 <pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
257 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span>
258 <span class="identifier">rvalue_reference_or_const_lvalue_reference</span>
259 <a class="link" href="../boost/move_if_noexcept.html" title="Function template move_if_noexcept"><span class="identifier">move_if_noexcept</span></a><span class="special">(</span><span class="identifier">input_reference</span><span class="special">)</span><span class="special">;</span>
260 <span class="special">}</span></pre>
262 <div class="section">
263 <div class="titlepage"><div><div><h3 class="title">
264 <a name="header.boost.move.utility_core_hpp"></a>Header <<a href="../../../boost/move/utility_core.hpp" target="_top">boost/move/utility_core.hpp</a>></h3></div></div></div>
265 <p>This header defines core utilities to ease the development of move-aware functions. This header minimizes dependencies from other libraries. </p>
266 <pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
267 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="../boost/enable_move_u_idp225112608.html" title="Struct template enable_move_utility_emulation">enable_move_utility_emulation</a><span class="special">;</span>
268 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span> <span class="identifier">rvalue_reference</span> <a class="link" href="../boost/move_idp225078944.html" title="Function template move"><span class="identifier">move</span></a><span class="special">(</span><span class="identifier">input_reference</span><span class="special">)</span><span class="special">;</span>
269 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span> <span class="identifier">output_reference</span> <a class="link" href="../boost/forward.html" title="Function template forward"><span class="identifier">forward</span></a><span class="special">(</span><span class="identifier">input_reference</span><span class="special">)</span><span class="special">;</span>
270 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span>
271 <span class="identifier">output_reference</span> <a name="boost.move_if_not_l_idp225049936"></a><span class="identifier">move_if_not_lvalue_reference</span><span class="special">(</span><span class="identifier">input_reference</span><span class="special">)</span><span class="special">;</span>
272 <span class="special">}</span></pre>
275 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
276 <td align="left"></td>
277 <td align="right"><div class="copyright-footer">Copyright © 2008-2014 Ion Gaztanaga<p>
278 Distributed under the Boost Software License, Version 1.0. (See accompanying
279 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>)
284 <div class="spirit-nav">
285 <a accesskey="p" href="release_notes.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../move.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/move_idp105408384.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>