diff options
Diffstat (limited to 'doc/html/boost/lockfree/stack.html')
-rw-r--r-- | doc/html/boost/lockfree/stack.html | 166 |
1 files changed, 83 insertions, 83 deletions
diff --git a/doc/html/boost/lockfree/stack.html b/doc/html/boost/lockfree/stack.html index ec54f25b42..37e81fe380 100644 --- a/doc/html/boost/lockfree/stack.html +++ b/doc/html/boost/lockfree/stack.html @@ -48,64 +48,64 @@ <span class="keyword">typedef</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="stack/node.html#boost.lockfree.stack.node.handle_t"><span class="identifier">handle_t</span></a><span class="special">;</span> <span class="comment">// <a class="link" href="stack/node.html#boost.lockfree.stack.nodeconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="stack/node.html#id-1_3_22_6_5_1_1_1_4_6-bb"><span class="identifier">node</span></a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="stack/node.html#id-1_3_23_6_5_1_1_1_4_6-bb"><span class="identifier">node</span></a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> <span class="comment">// public data members</span> <span class="identifier">handle_t</span> <span class="identifier">next</span><span class="special">;</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">v</span><span class="special">;</span> <span class="special">}</span><span class="special">;</span> <span class="comment">// <a class="link" href="stack.html#boost.lockfree.stackconstruct-copy-destruct">construct/copy/destruct</a></span> - <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_5-bb"><span class="identifier">stack</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">explicit</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_6-bb"><span class="identifier">stack</span></a><span class="special">(</span><span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_7-bb"><span class="identifier">stack</span></a><span class="special">(</span><span class="identifier">allocator</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">explicit</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_8-bb"><span class="identifier">stack</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_9-bb"><span class="identifier">stack</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> - <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_11-bb"><span class="special">~</span><span class="identifier">stack</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_5-bb"><span class="identifier">stack</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">explicit</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_6-bb"><span class="identifier">stack</span></a><span class="special">(</span><span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_7-bb"><span class="identifier">stack</span></a><span class="special">(</span><span class="identifier">allocator</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">explicit</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_8-bb"><span class="identifier">stack</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_9-bb"><span class="identifier">stack</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">)</span><span class="special">;</span> + <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_11-bb"><span class="special">~</span><span class="identifier">stack</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_10-bb">private member functions</a></span> - <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_10_1-bb"><span class="identifier">BOOST_STATIC_ASSERT</span></a><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_copy_constructible</span><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span><span class="special">::</span><span class="identifier">value</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_10_2-bb"><span class="identifier">BOOST_STATIC_ASSERT</span></a><span class="special">(</span><span class="special">(</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">if_c</span><span class="special"><</span> <span class="identifier">has_capacity</span><span class="special">,</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">bool_</span><span class="special"><</span> <a class="link" href="capacity.html" title="Struct template capacity">capacity</a><span class="special">-</span><span class="number">1</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">integer_traits</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint16_t</span> <span class="special">></span><span class="special">::</span><span class="identifier">const_max</span> <span class="special">></span><span class="special">,</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span><span class="special">::</span><span class="identifier">value</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> - <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_10_3-bb"><span class="identifier">BOOST_DELETED_FUNCTION</span></a><span class="special">(</span><a class="link" href="stack.html" title="Class template stack">stack</a><span class="special">(</span><a class="link" href="stack.html" title="Class template stack">stack</a> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_10_4-bb"><span class="identifier">is_lock_free</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_10_5-bb"><span class="identifier">reserve</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_10_6-bb"><span class="identifier">reserve_unsafe</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_10_7-bb"><span class="identifier">initialize</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_10_8-bb"><span class="identifier">link_nodes_atomic</span></a><span class="special">(</span><span class="identifier">node</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">node</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">void</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_10_9-bb"><span class="identifier">link_nodes_unsafe</span></a><span class="special">(</span><span class="identifier">node</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">node</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_10-bb">private member functions</a></span> + <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_10_1-bb"><span class="identifier">BOOST_STATIC_ASSERT</span></a><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_copy_constructible</span><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span><span class="special">::</span><span class="identifier">value</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_10_2-bb"><span class="identifier">BOOST_STATIC_ASSERT</span></a><span class="special">(</span><span class="special">(</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">if_c</span><span class="special"><</span> <span class="identifier">has_capacity</span><span class="special">,</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">bool_</span><span class="special"><</span> <a class="link" href="capacity.html" title="Struct template capacity">capacity</a><span class="special">-</span><span class="number">1</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">integer_traits</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint16_t</span> <span class="special">></span><span class="special">::</span><span class="identifier">const_max</span> <span class="special">></span><span class="special">,</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span><span class="special">::</span><span class="identifier">value</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_10_3-bb"><span class="identifier">BOOST_DELETED_FUNCTION</span></a><span class="special">(</span><a class="link" href="stack.html" title="Class template stack">stack</a><span class="special">(</span><a class="link" href="stack.html" title="Class template stack">stack</a> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_10_4-bb"><span class="identifier">is_lock_free</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_10_5-bb"><span class="identifier">reserve</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_10_6-bb"><span class="identifier">reserve_unsafe</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_10_7-bb"><span class="identifier">initialize</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_10_8-bb"><span class="identifier">link_nodes_atomic</span></a><span class="special">(</span><span class="identifier">node</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">node</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">void</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_10_9-bb"><span class="identifier">link_nodes_unsafe</span></a><span class="special">(</span><span class="identifier">node</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">node</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Threadsafe<span class="special">,</span> <span class="keyword">bool</span> Bounded<span class="special">,</span> <span class="keyword">typename</span> ConstIterator<span class="special">></span> <span class="identifier">tuple</span><span class="special"><</span> <span class="identifier">node</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">node</span> <span class="special">*</span> <span class="special">></span> - <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_10_10-bb"><span class="identifier">prepare_node_list</span></a><span class="special">(</span><span class="identifier">ConstIterator</span><span class="special">,</span> <span class="identifier">ConstIterator</span><span class="special">,</span> <span class="identifier">ConstIterator</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Bounded<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_10_11-bb"><span class="identifier">do_push</span></a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_10_10-bb"><span class="identifier">prepare_node_list</span></a><span class="special">(</span><span class="identifier">ConstIterator</span><span class="special">,</span> <span class="identifier">ConstIterator</span><span class="special">,</span> <span class="identifier">ConstIterator</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Bounded<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_10_11-bb"><span class="identifier">do_push</span></a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Bounded<span class="special">,</span> <span class="keyword">typename</span> ConstIterator<span class="special">></span> - <span class="identifier">ConstIterator</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_10_12-bb"><span class="identifier">do_push</span></a><span class="special">(</span><span class="identifier">ConstIterator</span><span class="special">,</span> <span class="identifier">ConstIterator</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">ConstIterator</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_10_12-bb"><span class="identifier">do_push</span></a><span class="special">(</span><span class="identifier">ConstIterator</span><span class="special">,</span> <span class="identifier">ConstIterator</span><span class="special">)</span><span class="special">;</span> - <span class="comment">// <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_12-bb">public member functions</a></span> - <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_12_1-bb"><span class="identifier">push</span></a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_12_2-bb"><span class="identifier">bounded_push</span></a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="comment">// <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_12-bb">public member functions</a></span> + <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_12_1-bb"><span class="identifier">push</span></a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_12_2-bb"><span class="identifier">bounded_push</span></a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ConstIterator<span class="special">></span> - <span class="identifier">ConstIterator</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_12_3-bb"><span class="identifier">push</span></a><span class="special">(</span><span class="identifier">ConstIterator</span><span class="special">,</span> <span class="identifier">ConstIterator</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">ConstIterator</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_12_3-bb"><span class="identifier">push</span></a><span class="special">(</span><span class="identifier">ConstIterator</span><span class="special">,</span> <span class="identifier">ConstIterator</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ConstIterator<span class="special">></span> - <span class="identifier">ConstIterator</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_12_4-bb"><span class="identifier">bounded_push</span></a><span class="special">(</span><span class="identifier">ConstIterator</span><span class="special">,</span> <span class="identifier">ConstIterator</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_12_5-bb"><span class="identifier">unsynchronized_push</span></a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">ConstIterator</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_12_4-bb"><span class="identifier">bounded_push</span></a><span class="special">(</span><span class="identifier">ConstIterator</span><span class="special">,</span> <span class="identifier">ConstIterator</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_12_5-bb"><span class="identifier">unsynchronized_push</span></a><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ConstIterator<span class="special">></span> - <span class="identifier">ConstIterator</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_12_6-bb"><span class="identifier">unsynchronized_push</span></a><span class="special">(</span><span class="identifier">ConstIterator</span><span class="special">,</span> <span class="identifier">ConstIterator</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_12_7-bb"><span class="identifier">pop</span></a><span class="special">(</span><span class="identifier">T</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_12_8-bb"><span class="identifier">pop</span></a><span class="special">(</span><span class="identifier">U</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_12_9-bb"><span class="identifier">unsynchronized_pop</span></a><span class="special">(</span><span class="identifier">T</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_12_10-bb"><span class="identifier">unsynchronized_pop</span></a><span class="special">(</span><span class="identifier">U</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_12_11-bb"><span class="identifier">consume_one</span></a><span class="special">(</span><span class="identifier">Functor</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_12_12-bb"><span class="identifier">consume_one</span></a><span class="special">(</span><span class="identifier">Functor</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="identifier">size_t</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_12_13-bb"><span class="identifier">consume_all</span></a><span class="special">(</span><span class="identifier">Functor</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="identifier">size_t</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_12_14-bb"><span class="identifier">consume_all</span></a><span class="special">(</span><span class="identifier">Functor</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="identifier">size_t</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_12_15-bb"><span class="identifier">consume_all_atomic</span></a><span class="special">(</span><span class="identifier">Functor</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="identifier">size_t</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_12_16-bb"><span class="identifier">consume_all_atomic</span></a><span class="special">(</span><span class="identifier">Functor</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="identifier">size_t</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_12_17-bb"><span class="identifier">consume_all_atomic_reversed</span></a><span class="special">(</span><span class="identifier">Functor</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="identifier">ConstIterator</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_12_6-bb"><span class="identifier">unsynchronized_push</span></a><span class="special">(</span><span class="identifier">ConstIterator</span><span class="special">,</span> <span class="identifier">ConstIterator</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_12_7-bb"><span class="identifier">pop</span></a><span class="special">(</span><span class="identifier">T</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_12_8-bb"><span class="identifier">pop</span></a><span class="special">(</span><span class="identifier">U</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_12_9-bb"><span class="identifier">unsynchronized_pop</span></a><span class="special">(</span><span class="identifier">T</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_12_10-bb"><span class="identifier">unsynchronized_pop</span></a><span class="special">(</span><span class="identifier">U</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_12_11-bb"><span class="identifier">consume_one</span></a><span class="special">(</span><span class="identifier">Functor</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_12_12-bb"><span class="identifier">consume_one</span></a><span class="special">(</span><span class="identifier">Functor</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="identifier">size_t</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_12_13-bb"><span class="identifier">consume_all</span></a><span class="special">(</span><span class="identifier">Functor</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="identifier">size_t</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_12_14-bb"><span class="identifier">consume_all</span></a><span class="special">(</span><span class="identifier">Functor</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="identifier">size_t</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_12_15-bb"><span class="identifier">consume_all_atomic</span></a><span class="special">(</span><span class="identifier">Functor</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="identifier">size_t</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_12_16-bb"><span class="identifier">consume_all_atomic</span></a><span class="special">(</span><span class="identifier">Functor</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="identifier">size_t</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_12_17-bb"><span class="identifier">consume_all_atomic_reversed</span></a><span class="special">(</span><span class="identifier">Functor</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> - <span class="identifier">size_t</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_12_18-bb"><span class="identifier">consume_all_atomic_reversed</span></a><span class="special">(</span><span class="identifier">Functor</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> - <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_22_6_5_1_1_1_12_19-bb"><span class="identifier">empty</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> + <span class="identifier">size_t</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_12_18-bb"><span class="identifier">consume_all_atomic_reversed</span></a><span class="special">(</span><span class="identifier">Functor</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> + <span class="keyword">bool</span> <a class="link" href="stack.html#id-1_3_23_6_5_1_1_1_12_19-bb"><span class="identifier">empty</span></a><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> <span class="special">}</span><span class="special">;</span></pre></div> <div class="refsect1"> -<a name="id-1.3.22.6.5.3.4"></a><h2>Description</h2> +<a name="id-1.3.23.6.5.3.4"></a><h2>Description</h2> <p>The stack class provides a multi-writer/multi-reader stack, pushing and popping is lock-free, construction/destruction has to be synchronized. It uses a freelist for memory management, freed nodes are pushed to the freelist and not returned to the OS before the stack is destroyed.</p> <p><span class="bold"><strong>Policies:</strong></span> </p> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> @@ -125,20 +125,20 @@ <p> </p> <div class="refsect2"> -<a name="id-1.3.22.6.5.3.4.6"></a><h3> +<a name="id-1.3.23.6.5.3.4.6"></a><h3> <a name="boost.lockfree.stackconstruct-copy-destruct"></a><code class="computeroutput">stack</code> public construct/copy/destruct</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><a name="id-1_3_22_6_5_1_1_1_5-bb"></a><span class="identifier">stack</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre>Construct stack. </li> -<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">explicit</span> <a name="id-1_3_22_6_5_1_1_1_6-bb"></a><span class="identifier">stack</span><span class="special">(</span><span class="emphasis"><em><span class="identifier">unspecified</span></em></span> alloc<span class="special">)</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">explicit</span> <a name="id-1_3_22_6_5_1_1_1_7-bb"></a><span class="identifier">stack</span><span class="special">(</span><span class="identifier">allocator</span> <span class="keyword">const</span> <span class="special">&</span> alloc<span class="special">)</span><span class="special">;</span></pre></li> +<pre class="literallayout"><a name="id-1_3_23_6_5_1_1_1_5-bb"></a><span class="identifier">stack</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre>Construct stack. </li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">explicit</span> <a name="id-1_3_23_6_5_1_1_1_6-bb"></a><span class="identifier">stack</span><span class="special">(</span><span class="emphasis"><em><span class="identifier">unspecified</span></em></span> alloc<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">explicit</span> <a name="id-1_3_23_6_5_1_1_1_7-bb"></a><span class="identifier">stack</span><span class="special">(</span><span class="identifier">allocator</span> <span class="keyword">const</span> <span class="special">&</span> alloc<span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">explicit</span> <a name="id-1_3_22_6_5_1_1_1_8-bb"></a><span class="identifier">stack</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span><span class="special">;</span></pre>Construct stack, allocate n nodes for the freelist. </li> -<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <a name="id-1_3_22_6_5_1_1_1_9-bb"></a><span class="identifier">stack</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> alloc<span class="special">)</span><span class="special">;</span></pre></li> +<pre class="literallayout"><span class="keyword">explicit</span> <a name="id-1_3_23_6_5_1_1_1_8-bb"></a><span class="identifier">stack</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span><span class="special">;</span></pre>Construct stack, allocate n nodes for the freelist. </li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <a name="id-1_3_23_6_5_1_1_1_9-bb"></a><span class="identifier">stack</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> alloc<span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"> -<pre class="literallayout"><a name="id-1_3_22_6_5_1_1_1_11-bb"></a><span class="special">~</span><span class="identifier">stack</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><a name="id-1_3_23_6_5_1_1_1_11-bb"></a><span class="special">~</span><span class="identifier">stack</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre> <p>Destroys stack, free all nodes from freelist.</p> <div class="note"><table border="0" summary="Note"> <tr> @@ -153,14 +153,14 @@ </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.22.6.5.3.4.7"></a><h3> -<a name="id-1_3_22_6_5_1_1_1_10-bb"></a><code class="computeroutput">stack</code> private member functions</h3> +<a name="id-1.3.23.6.5.3.4.7"></a><h3> +<a name="id-1_3_23_6_5_1_1_1_10-bb"></a><code class="computeroutput">stack</code> private member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> -<li class="listitem"><pre class="literallayout"> <a name="id-1_3_22_6_5_1_1_1_10_1-bb"></a><span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_copy_constructible</span><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span><span class="special">::</span><span class="identifier">value</span><span class="special">)</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"> <a name="id-1_3_22_6_5_1_1_1_10_2-bb"></a><span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">(</span><span class="special">(</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">if_c</span><span class="special"><</span> <span class="identifier">has_capacity</span><span class="special">,</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">bool_</span><span class="special"><</span> <a class="link" href="capacity.html" title="Struct template capacity">capacity</a><span class="special">-</span><span class="number">1</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">integer_traits</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint16_t</span> <span class="special">></span><span class="special">::</span><span class="identifier">const_max</span> <span class="special">></span><span class="special">,</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span><span class="special">::</span><span class="identifier">value</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"> <a name="id-1_3_22_6_5_1_1_1_10_3-bb"></a><span class="identifier">BOOST_DELETED_FUNCTION</span><span class="special">(</span><a class="link" href="stack.html" title="Class template stack">stack</a><span class="special">(</span><a class="link" href="stack.html" title="Class template stack">stack</a> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"> <a name="id-1_3_23_6_5_1_1_1_10_1-bb"></a><span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_copy_constructible</span><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span><span class="special">::</span><span class="identifier">value</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"> <a name="id-1_3_23_6_5_1_1_1_10_2-bb"></a><span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">(</span><span class="special">(</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">if_c</span><span class="special"><</span> <span class="identifier">has_capacity</span><span class="special">,</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">bool_</span><span class="special"><</span> <a class="link" href="capacity.html" title="Struct template capacity">capacity</a><span class="special">-</span><span class="number">1</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">integer_traits</span><span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint16_t</span> <span class="special">></span><span class="special">::</span><span class="identifier">const_max</span> <span class="special">></span><span class="special">,</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span><span class="special">::</span><span class="identifier">value</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"> <a name="id-1_3_23_6_5_1_1_1_10_3-bb"></a><span class="identifier">BOOST_DELETED_FUNCTION</span><span class="special">(</span><a class="link" href="stack.html" title="Class template stack">stack</a><span class="special">(</span><a class="link" href="stack.html" title="Class template stack">stack</a> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="id-1_3_22_6_5_1_1_1_10_4-bb"></a><span class="identifier">is_lock_free</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">bool</span> <a name="id-1_3_23_6_5_1_1_1_10_4-bb"></a><span class="identifier">is_lock_free</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p> </p> <div class="warning"><table border="0" summary="Warning"> @@ -184,7 +184,7 @@ </table></div> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="id-1_3_22_6_5_1_1_1_10_5-bb"></a><span class="identifier">reserve</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="id-1_3_23_6_5_1_1_1_10_5-bb"></a><span class="identifier">reserve</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span><span class="special">;</span></pre> <p>Allocate n nodes for freelist</p> <p> </p> @@ -209,7 +209,7 @@ </table></div> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">void</span> <a name="id-1_3_22_6_5_1_1_1_10_6-bb"></a><span class="identifier">reserve_unsafe</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">void</span> <a name="id-1_3_23_6_5_1_1_1_10_6-bb"></a><span class="identifier">reserve_unsafe</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span><span class="special">;</span></pre> <p>Allocate n nodes for freelist</p> <p> </p> @@ -233,24 +233,24 @@ </tr></tbody> </table></div> </li> -<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="id-1_3_22_6_5_1_1_1_10_7-bb"></a><span class="identifier">initialize</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="id-1_3_22_6_5_1_1_1_10_8-bb"></a><span class="identifier">link_nodes_atomic</span><span class="special">(</span><span class="identifier">node</span> <span class="special">*</span> new_top_node<span class="special">,</span> <span class="identifier">node</span> <span class="special">*</span> end_node<span class="special">)</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="id-1_3_22_6_5_1_1_1_10_9-bb"></a><span class="identifier">link_nodes_unsafe</span><span class="special">(</span><span class="identifier">node</span> <span class="special">*</span> new_top_node<span class="special">,</span> <span class="identifier">node</span> <span class="special">*</span> end_node<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="id-1_3_23_6_5_1_1_1_10_7-bb"></a><span class="identifier">initialize</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="id-1_3_23_6_5_1_1_1_10_8-bb"></a><span class="identifier">link_nodes_atomic</span><span class="special">(</span><span class="identifier">node</span> <span class="special">*</span> new_top_node<span class="special">,</span> <span class="identifier">node</span> <span class="special">*</span> end_node<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">void</span> <a name="id-1_3_23_6_5_1_1_1_10_9-bb"></a><span class="identifier">link_nodes_unsafe</span><span class="special">(</span><span class="identifier">node</span> <span class="special">*</span> new_top_node<span class="special">,</span> <span class="identifier">node</span> <span class="special">*</span> end_node<span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Threadsafe<span class="special">,</span> <span class="keyword">bool</span> Bounded<span class="special">,</span> <span class="keyword">typename</span> ConstIterator<span class="special">></span> <span class="identifier">tuple</span><span class="special"><</span> <span class="identifier">node</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">node</span> <span class="special">*</span> <span class="special">></span> - <a name="id-1_3_22_6_5_1_1_1_10_10-bb"></a><span class="identifier">prepare_node_list</span><span class="special">(</span><span class="identifier">ConstIterator</span> begin<span class="special">,</span> <span class="identifier">ConstIterator</span> end<span class="special">,</span> + <a name="id-1_3_23_6_5_1_1_1_10_10-bb"></a><span class="identifier">prepare_node_list</span><span class="special">(</span><span class="identifier">ConstIterator</span> begin<span class="special">,</span> <span class="identifier">ConstIterator</span> end<span class="special">,</span> <span class="identifier">ConstIterator</span> <span class="special">&</span> ret<span class="special">)</span><span class="special">;</span></pre></li> -<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Bounded<span class="special">></span> <span class="keyword">bool</span> <a name="id-1_3_22_6_5_1_1_1_10_11-bb"></a><span class="identifier">do_push</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> v<span class="special">)</span><span class="special">;</span></pre></li> +<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Bounded<span class="special">></span> <span class="keyword">bool</span> <a name="id-1_3_23_6_5_1_1_1_10_11-bb"></a><span class="identifier">do_push</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> v<span class="special">)</span><span class="special">;</span></pre></li> <li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">bool</span> Bounded<span class="special">,</span> <span class="keyword">typename</span> ConstIterator<span class="special">></span> - <span class="identifier">ConstIterator</span> <a name="id-1_3_22_6_5_1_1_1_10_12-bb"></a><span class="identifier">do_push</span><span class="special">(</span><span class="identifier">ConstIterator</span> begin<span class="special">,</span> <span class="identifier">ConstIterator</span> end<span class="special">)</span><span class="special">;</span></pre></li> + <span class="identifier">ConstIterator</span> <a name="id-1_3_23_6_5_1_1_1_10_12-bb"></a><span class="identifier">do_push</span><span class="special">(</span><span class="identifier">ConstIterator</span> begin<span class="special">,</span> <span class="identifier">ConstIterator</span> end<span class="special">)</span><span class="special">;</span></pre></li> </ol></div> </div> <div class="refsect2"> -<a name="id-1.3.22.6.5.3.4.8"></a><h3> -<a name="id-1_3_22_6_5_1_1_1_12-bb"></a><code class="computeroutput">stack</code> public member functions</h3> +<a name="id-1.3.23.6.5.3.4.8"></a><h3> +<a name="id-1_3_23_6_5_1_1_1_12-bb"></a><code class="computeroutput">stack</code> public member functions</h3> <div class="orderedlist"><ol class="orderedlist" type="1"> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="id-1_3_22_6_5_1_1_1_12_1-bb"></a><span class="identifier">push</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> v<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">bool</span> <a name="id-1_3_23_6_5_1_1_1_12_1-bb"></a><span class="identifier">push</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> v<span class="special">)</span><span class="special">;</span></pre> <p>Pushes object t to the stack.</p> <p> @@ -287,7 +287,7 @@ </table></div> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="id-1_3_22_6_5_1_1_1_12_2-bb"></a><span class="identifier">bounded_push</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> v<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">bool</span> <a name="id-1_3_23_6_5_1_1_1_12_2-bb"></a><span class="identifier">bounded_push</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> v<span class="special">)</span><span class="special">;</span></pre> <p>Pushes object t to the stack.</p> <p> @@ -320,7 +320,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ConstIterator<span class="special">></span> - <span class="identifier">ConstIterator</span> <a name="id-1_3_22_6_5_1_1_1_12_3-bb"></a><span class="identifier">push</span><span class="special">(</span><span class="identifier">ConstIterator</span> begin<span class="special">,</span> <span class="identifier">ConstIterator</span> end<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">ConstIterator</span> <a name="id-1_3_23_6_5_1_1_1_12_3-bb"></a><span class="identifier">push</span><span class="special">(</span><span class="identifier">ConstIterator</span> begin<span class="special">,</span> <span class="identifier">ConstIterator</span> end<span class="special">)</span><span class="special">;</span></pre> <p>Pushes as many objects from the range [begin, end) as freelist node can be allocated.</p> <p> </p> @@ -356,7 +356,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ConstIterator<span class="special">></span> - <span class="identifier">ConstIterator</span> <a name="id-1_3_22_6_5_1_1_1_12_4-bb"></a><span class="identifier">bounded_push</span><span class="special">(</span><span class="identifier">ConstIterator</span> begin<span class="special">,</span> <span class="identifier">ConstIterator</span> end<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">ConstIterator</span> <a name="id-1_3_23_6_5_1_1_1_12_4-bb"></a><span class="identifier">bounded_push</span><span class="special">(</span><span class="identifier">ConstIterator</span> begin<span class="special">,</span> <span class="identifier">ConstIterator</span> end<span class="special">)</span><span class="special">;</span></pre> <p>Pushes as many objects from the range [begin, end) as freelist node can be allocated.</p> <p> </p> @@ -391,7 +391,7 @@ </table></div> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="id-1_3_22_6_5_1_1_1_12_5-bb"></a><span class="identifier">unsynchronized_push</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> v<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">bool</span> <a name="id-1_3_23_6_5_1_1_1_12_5-bb"></a><span class="identifier">unsynchronized_push</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&</span> v<span class="special">)</span><span class="special">;</span></pre> <p>Pushes object t to the stack.</p> <p> @@ -429,7 +429,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ConstIterator<span class="special">></span> - <span class="identifier">ConstIterator</span> <a name="id-1_3_22_6_5_1_1_1_12_6-bb"></a><span class="identifier">unsynchronized_push</span><span class="special">(</span><span class="identifier">ConstIterator</span> begin<span class="special">,</span> <span class="identifier">ConstIterator</span> end<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">ConstIterator</span> <a name="id-1_3_23_6_5_1_1_1_12_6-bb"></a><span class="identifier">unsynchronized_push</span><span class="special">(</span><span class="identifier">ConstIterator</span> begin<span class="special">,</span> <span class="identifier">ConstIterator</span> end<span class="special">)</span><span class="special">;</span></pre> <p>Pushes as many objects from the range [begin, end) as freelist node can be allocated.</p> <p> </p> @@ -461,7 +461,7 @@ </table></div> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="id-1_3_22_6_5_1_1_1_12_7-bb"></a><span class="identifier">pop</span><span class="special">(</span><span class="identifier">T</span> <span class="special">&</span> ret<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">bool</span> <a name="id-1_3_23_6_5_1_1_1_12_7-bb"></a><span class="identifier">pop</span><span class="special">(</span><span class="identifier">T</span> <span class="special">&</span> ret<span class="special">)</span><span class="special">;</span></pre> <p>Pops object from stack.</p> <p> @@ -493,7 +493,7 @@ </table></div> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">bool</span> <a name="id-1_3_22_6_5_1_1_1_12_8-bb"></a><span class="identifier">pop</span><span class="special">(</span><span class="identifier">U</span> <span class="special">&</span> ret<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">bool</span> <a name="id-1_3_23_6_5_1_1_1_12_8-bb"></a><span class="identifier">pop</span><span class="special">(</span><span class="identifier">U</span> <span class="special">&</span> ret<span class="special">)</span><span class="special">;</span></pre> <p>Pops object from stack.</p> <p> @@ -530,7 +530,7 @@ </table></div> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="id-1_3_22_6_5_1_1_1_12_9-bb"></a><span class="identifier">unsynchronized_pop</span><span class="special">(</span><span class="identifier">T</span> <span class="special">&</span> ret<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">bool</span> <a name="id-1_3_23_6_5_1_1_1_12_9-bb"></a><span class="identifier">unsynchronized_pop</span><span class="special">(</span><span class="identifier">T</span> <span class="special">&</span> ret<span class="special">)</span><span class="special">;</span></pre> <p>Pops object from stack.</p> <p> @@ -562,7 +562,7 @@ </table></div> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">bool</span> <a name="id-1_3_22_6_5_1_1_1_12_10-bb"></a><span class="identifier">unsynchronized_pop</span><span class="special">(</span><span class="identifier">U</span> <span class="special">&</span> ret<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> U<span class="special">></span> <span class="keyword">bool</span> <a name="id-1_3_23_6_5_1_1_1_12_10-bb"></a><span class="identifier">unsynchronized_pop</span><span class="special">(</span><span class="identifier">U</span> <span class="special">&</span> ret<span class="special">)</span><span class="special">;</span></pre> <p>Pops object from stack.</p> <p> @@ -599,7 +599,7 @@ </table></div> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="keyword">bool</span> <a name="id-1_3_22_6_5_1_1_1_12_11-bb"></a><span class="identifier">consume_one</span><span class="special">(</span><span class="identifier">Functor</span> <span class="special">&</span> f<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="keyword">bool</span> <a name="id-1_3_23_6_5_1_1_1_12_11-bb"></a><span class="identifier">consume_one</span><span class="special">(</span><span class="identifier">Functor</span> <span class="special">&</span> f<span class="special">)</span><span class="special">;</span></pre> <p>consumes one element via a functor</p> <p>pops one element from the stack and applies the functor on this object</p> <p> @@ -625,7 +625,7 @@ </table></div> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="keyword">bool</span> <a name="id-1_3_22_6_5_1_1_1_12_12-bb"></a><span class="identifier">consume_one</span><span class="special">(</span><span class="identifier">Functor</span> <span class="keyword">const</span> <span class="special">&</span> f<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="keyword">bool</span> <a name="id-1_3_23_6_5_1_1_1_12_12-bb"></a><span class="identifier">consume_one</span><span class="special">(</span><span class="identifier">Functor</span> <span class="keyword">const</span> <span class="special">&</span> f<span class="special">)</span><span class="special">;</span></pre> <p>consumes one element via a functor</p> <p>pops one element from the stack and applies the functor on this object</p> <p> @@ -651,7 +651,7 @@ </table></div> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="identifier">size_t</span> <a name="id-1_3_22_6_5_1_1_1_12_13-bb"></a><span class="identifier">consume_all</span><span class="special">(</span><span class="identifier">Functor</span> <span class="special">&</span> f<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="identifier">size_t</span> <a name="id-1_3_23_6_5_1_1_1_12_13-bb"></a><span class="identifier">consume_all</span><span class="special">(</span><span class="identifier">Functor</span> <span class="special">&</span> f<span class="special">)</span><span class="special">;</span></pre> <p>consumes all elements via a functor</p> <p>sequentially pops all elements from the stack and applies the functor on each object</p> <p> @@ -677,7 +677,7 @@ </table></div> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="identifier">size_t</span> <a name="id-1_3_22_6_5_1_1_1_12_14-bb"></a><span class="identifier">consume_all</span><span class="special">(</span><span class="identifier">Functor</span> <span class="keyword">const</span> <span class="special">&</span> f<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="identifier">size_t</span> <a name="id-1_3_23_6_5_1_1_1_12_14-bb"></a><span class="identifier">consume_all</span><span class="special">(</span><span class="identifier">Functor</span> <span class="keyword">const</span> <span class="special">&</span> f<span class="special">)</span><span class="special">;</span></pre> <p>consumes all elements via a functor</p> <p>sequentially pops all elements from the stack and applies the functor on each object</p> <p> @@ -703,7 +703,7 @@ </table></div> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="identifier">size_t</span> <a name="id-1_3_22_6_5_1_1_1_12_15-bb"></a><span class="identifier">consume_all_atomic</span><span class="special">(</span><span class="identifier">Functor</span> <span class="special">&</span> f<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="identifier">size_t</span> <a name="id-1_3_23_6_5_1_1_1_12_15-bb"></a><span class="identifier">consume_all_atomic</span><span class="special">(</span><span class="identifier">Functor</span> <span class="special">&</span> f<span class="special">)</span><span class="special">;</span></pre> <p>consumes all elements via a functor</p> <p>atomically pops all elements from the stack and applies the functor on each object</p> <p> @@ -729,7 +729,7 @@ </table></div> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="identifier">size_t</span> <a name="id-1_3_22_6_5_1_1_1_12_16-bb"></a><span class="identifier">consume_all_atomic</span><span class="special">(</span><span class="identifier">Functor</span> <span class="keyword">const</span> <span class="special">&</span> f<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="identifier">size_t</span> <a name="id-1_3_23_6_5_1_1_1_12_16-bb"></a><span class="identifier">consume_all_atomic</span><span class="special">(</span><span class="identifier">Functor</span> <span class="keyword">const</span> <span class="special">&</span> f<span class="special">)</span><span class="special">;</span></pre> <p>consumes all elements via a functor</p> <p>atomically pops all elements from the stack and applies the functor on each object</p> <p> @@ -755,7 +755,7 @@ </table></div> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="identifier">size_t</span> <a name="id-1_3_22_6_5_1_1_1_12_17-bb"></a><span class="identifier">consume_all_atomic_reversed</span><span class="special">(</span><span class="identifier">Functor</span> <span class="special">&</span> f<span class="special">)</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> <span class="identifier">size_t</span> <a name="id-1_3_23_6_5_1_1_1_12_17-bb"></a><span class="identifier">consume_all_atomic_reversed</span><span class="special">(</span><span class="identifier">Functor</span> <span class="special">&</span> f<span class="special">)</span><span class="special">;</span></pre> <p>consumes all elements via a functor</p> <p>atomically pops all elements from the stack and applies the functor on each object in reversed order</p> <p> @@ -782,7 +782,7 @@ </li> <li class="listitem"> <pre class="literallayout"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Functor<span class="special">></span> - <span class="identifier">size_t</span> <a name="id-1_3_22_6_5_1_1_1_12_18-bb"></a><span class="identifier">consume_all_atomic_reversed</span><span class="special">(</span><span class="identifier">Functor</span> <span class="keyword">const</span> <span class="special">&</span> f<span class="special">)</span><span class="special">;</span></pre> + <span class="identifier">size_t</span> <a name="id-1_3_23_6_5_1_1_1_12_18-bb"></a><span class="identifier">consume_all_atomic_reversed</span><span class="special">(</span><span class="identifier">Functor</span> <span class="keyword">const</span> <span class="special">&</span> f<span class="special">)</span><span class="special">;</span></pre> <p>consumes all elements via a functor</p> <p>atomically pops all elements from the stack and applies the functor on each object in reversed order</p> <p> @@ -808,7 +808,7 @@ </table></div> </li> <li class="listitem"> -<pre class="literallayout"><span class="keyword">bool</span> <a name="id-1_3_22_6_5_1_1_1_12_19-bb"></a><span class="identifier">empty</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> +<pre class="literallayout"><span class="keyword">bool</span> <a name="id-1_3_23_6_5_1_1_1_12_19-bb"></a><span class="identifier">empty</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> <p> </p> <div class="note"><table border="0" summary="Note"> |