boost/doc/html/stl_interfaces/reference.html
2021-10-05 21:37:46 +02:00

239 lines
48 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Reference</title>
<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="../stl_interfaces.html" title="Chapter 39. Boost.STLInterfaces">
<link rel="prev" href="compiler_support.html" title="Compiler Support">
<link rel="next" href="../boost/stl_interfaces/v1/v1_dtl/decrementable_sentinel.html" title="Struct template decrementable_sentinel">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
<td align="center"><a href="../../../index.html">Home</a></td>
<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="compiler_support.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../stl_interfaces.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/stl_interfaces/v1/v1_dtl/decrementable_sentinel.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="stl_interfaces.reference"></a><a class="link" href="reference.html" title="Reference">Reference</a>
</h2></div></div></div>
<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#headers">Headers</a></span></dt></dl></div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="headers"></a>Headers</h3></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="reference.html#header.boost.stl_interfaces.fwd_hpp">Header &lt;boost/stl_interfaces/fwd.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.stl_interfaces.iterator_interface_hpp">Header &lt;boost/stl_interfaces/iterator_interface.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.stl_interfaces.reverse_iterator_hpp">Header &lt;boost/stl_interfaces/reverse_iterator.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.stl_interfaces.sequence_container_interface_hpp">Header &lt;boost/stl_interfaces/sequence_container_interface.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.stl_interfaces.view_interface_hpp">Header &lt;boost/stl_interfaces/view_interface.hpp&gt;</a></span></dt>
</dl></div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="header.boost.stl_interfaces.fwd_hpp"></a>Header &lt;<a href="../../../boost/stl_interfaces/fwd.hpp" target="_top">boost/stl_interfaces/fwd.hpp</a>&gt;</h4></div></div></div>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">stl_interfaces</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">v1</span> <span class="special">{</span>
<span class="keyword">enum</span> <a class="link" href="../boost/stl_interfaces/v1/element_layout.html" title="Type element_layout">element_layout</a><span class="special">;</span>
<span class="keyword">namespace</span> <span class="identifier">v1_dtl</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range<span class="special">,</span> <span class="keyword">typename</span> <span class="special">=</span> <span class="keyword">void</span><span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/stl_interfaces/v1/v1_dtl/decrementable_sentinel.html" title="Struct template decrementable_sentinel">decrementable_sentinel</a><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range<span class="special">&gt;</span>
<span class="keyword">struct</span> <a class="link" href="../boost/stl_interfaces/v1/v1_dtl/de_1_3_40_11_2_2_1_1_1_1_2.html" title="Struct template decrementable_sentinel&lt;Range, void_t&lt; decltype(--std::declval&lt; sentinel_t&lt; Range &gt; &amp; &gt;())&gt;&gt;">decrementable_sentinel</a><span class="special">&lt;</span><span class="identifier">Range</span><span class="special">,</span> <span class="identifier">void_t</span><span class="special">&lt;</span> <span class="keyword">decltype</span><span class="special">(</span><span class="special">--</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">declval</span><span class="special">&lt;</span> <span class="identifier">sentinel_t</span><span class="special">&lt;</span> <span class="identifier">Range</span> <span class="special">&gt;</span> <span class="special">&amp;</span> <span class="special">&gt;</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">&gt;</span><span class="special">&gt;</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range<span class="special">,</span> <span class="keyword">typename</span> <span class="special">=</span> <span class="keyword">void</span><span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/stl_interfaces/v1/v1_dtl/iterator.html" title="Struct template iterator">iterator</a><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range<span class="special">&gt;</span>
<span class="keyword">struct</span> <a class="link" href="../boost/stl_interfaces/v1/v1_dtl/it_1_3_40_11_2_2_1_1_1_1_4.html" title="Struct template iterator&lt;Range, void_t&lt; decltype(std::declval&lt; Range &amp; &gt;().begin())&gt;&gt;">iterator</a><span class="special">&lt;</span><span class="identifier">Range</span><span class="special">,</span> <span class="identifier">void_t</span><span class="special">&lt;</span> <span class="keyword">decltype</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">declval</span><span class="special">&lt;</span> <span class="identifier">Range</span> <span class="special">&amp;</span> <span class="special">&gt;</span><span class="special">(</span><span class="special">)</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">&gt;</span><span class="special">&gt;</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range<span class="special">,</span> <span class="keyword">typename</span> <span class="special">=</span> <span class="keyword">void</span><span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/stl_interfaces/v1/v1_dtl/sentinel.html" title="Struct template sentinel">sentinel</a><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range<span class="special">&gt;</span>
<span class="keyword">struct</span> <a class="link" href="../boost/stl_interfaces/v1/v1_dtl/se_1_3_40_11_2_2_1_1_1_1_6.html" title="Struct template sentinel&lt;Range, void_t&lt; decltype(std::declval&lt; Range &amp; &gt;().end())&gt;&gt;">sentinel</a><span class="special">&lt;</span><span class="identifier">Range</span><span class="special">,</span> <span class="identifier">void_t</span><span class="special">&lt;</span> <span class="keyword">decltype</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">declval</span><span class="special">&lt;</span> <span class="identifier">Range</span> <span class="special">&amp;</span> <span class="special">&gt;</span><span class="special">(</span><span class="special">)</span><span class="special">.</span><span class="identifier">end</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">&gt;</span><span class="special">&gt;</span><span class="special">;</span>
<span class="keyword">typedef</span> <span class="keyword">void</span> <a name="boost.stl_interfaces.v1.v1_dtl.void_t"></a><span class="identifier">void_t</span><span class="special">;</span>
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span> <span class="identifier">Iter</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">difference_type</span> <a name="boost.stl_interfaces.v1.v1_dtl.iter_difference_t"></a><span class="identifier">iter_difference_t</span><span class="special">;</span>
<span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="link" href="../boost/stl_interfaces/v1/v1_dtl/iterator.html" title="Struct template iterator">iterator</a><span class="special">&lt;</span> <span class="identifier">Range</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <a name="boost.stl_interfaces.v1.v1_dtl.iterator_t"></a><span class="identifier">iterator_t</span><span class="special">;</span>
<span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="link" href="../boost/stl_interfaces/v1/v1_dtl/sentinel.html" title="Struct template sentinel">sentinel</a><span class="special">&lt;</span> <span class="identifier">Range</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <a name="boost.stl_interfaces.v1.v1_dtl.sentinel_t"></a><span class="identifier">sentinel_t</span><span class="special">;</span>
<span class="keyword">typedef</span> <span class="identifier">iter_difference_t</span><span class="special">&lt;</span> <span class="identifier">iterator_t</span><span class="special">&lt;</span> <span class="identifier">Range</span> <span class="special">&gt;</span> <span class="special">&gt;</span> <a name="boost.stl_interfaces.v1.v1_dtl.range_difference_t"></a><span class="identifier">range_difference_t</span><span class="special">;</span>
<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">is_same</span><span class="special">&lt;</span> <span class="identifier">iterator_t</span><span class="special">&lt;</span> <span class="identifier">Range</span> <span class="special">&gt;</span><span class="special">,</span> <span class="identifier">sentinel_t</span><span class="special">&lt;</span> <span class="identifier">Range</span> <span class="special">&gt;</span> <span class="special">&gt;</span> <a name="boost.stl_interfaces.v1.v1_dtl.common_range"></a><span class="identifier">common_range</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="header.boost.stl_interfaces.iterator_interface_hpp"></a>Header &lt;<a href="../../../boost/stl_interfaces/iterator_interface.hpp" target="_top">boost/stl_interfaces/iterator_interface.hpp</a>&gt;</h4></div></div></div>
<pre class="synopsis">
<a class="link" href="../BOOST_STL__1_3_40_11_2_3_2.html" title="Macro BOOST_STL_INTERFACES_STATIC_ASSERT_CONCEPT">BOOST_STL_INTERFACES_STATIC_ASSERT_CONCEPT</a>(type, concept_name)
<a class="link" href="../BOOST_STL__1_3_40_11_2_3_3.html" title="Macro BOOST_STL_INTERFACES_STATIC_ASSERT_ITERATOR_TRAITS">BOOST_STL_INTERFACES_STATIC_ASSERT_ITERATOR_TRAITS</a>(iter, category, concept, value_type, reference, pointer, difference_type)</pre>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">stl_interfaces</span> <span class="special">{</span>
<span class="keyword">struct</span> <a class="link" href="../boost/stl_interfaces/access.html" title="Struct access">access</a><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/stl_interfaces/proxy_arrow_result.html" title="Struct template proxy_arrow_result">proxy_arrow_result</a><span class="special">;</span>
<span class="keyword">namespace</span> <span class="identifier">v1</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Derived<span class="special">,</span> <span class="keyword">typename</span> IteratorConcept<span class="special">,</span> <span class="keyword">typename</span> ValueType<span class="special">,</span>
<span class="keyword">typename</span> Reference<span class="special">,</span> <span class="keyword">typename</span> Pointer<span class="special">,</span> <span class="keyword">typename</span> DifferenceType<span class="special">&gt;</span>
<span class="keyword">struct</span> <a class="link" href="../boost/stl_interfaces/v1/iterator_interface.html" title="Struct template iterator_interface">iterator_interface</a><span class="special">;</span>
<span class="keyword">typedef</span> <a class="link" href="../boost/stl_interfaces/v1/iterator_interface.html" title="Struct template iterator_interface">iterator_interface</a><span class="special">&lt;</span> <span class="identifier">Derived</span><span class="special">,</span> <span class="identifier">IteratorConcept</span><span class="special">,</span> <span class="identifier">ValueType</span><span class="special">,</span> <span class="identifier">Reference</span><span class="special">,</span> <a class="link" href="../boost/stl_interfaces/proxy_arrow_result.html" title="Struct template proxy_arrow_result">proxy_arrow_result</a><span class="special">&lt;</span> <span class="identifier">Reference</span> <span class="special">&gt;</span><span class="special">,</span> <span class="identifier">DifferenceType</span> <span class="special">&gt;</span> <a class="link" href="../boost/stl_interfaces/v1/proxy_iterator_interface.html" title="Type definition proxy_iterator_interface"><span class="identifier">proxy_iterator_interface</span></a><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> IteratorInterface1<span class="special">,</span> <span class="keyword">typename</span> IteratorInterface2<span class="special">,</span>
<span class="keyword">typename</span> Enable <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">enable_if_t</span><span class="special">&lt;</span><span class="special">!</span><span class="identifier">v1_dtl</span><span class="special">::</span><span class="identifier">ra_iter</span><span class="special">&lt;</span><span class="identifier">IteratorInterface1</span><span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">&gt;</span> <span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="link" href="../boost/stl_interfaces/v1/oper_1_3_40_11_2_3_1_1_3_4.html" title="Function template operator=="><span class="keyword">operator</span><span class="special">==</span></a><span class="special">(</span><span class="identifier">IteratorInterface1</span><span class="special">,</span> <span class="identifier">IteratorInterface2</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> IteratorInterface1<span class="special">,</span> <span class="keyword">typename</span> IteratorInterface2<span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="link" href="../boost/stl_interfaces/v1/oper_1_3_40_11_2_3_1_1_3_5.html" title="Function template operator!="><span class="keyword">operator</span><span class="special">!=</span></a><span class="special">(</span><span class="identifier">IteratorInterface1</span><span class="special">,</span> <span class="identifier">IteratorInterface2</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> IteratorInterface1<span class="special">,</span> <span class="keyword">typename</span> IteratorInterface2<span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="link" href="../boost/stl_interfaces/v1/oper_1_3_40_11_2_3_1_1_3_6.html" title="Function template operator&lt;"><span class="keyword">operator</span><span class="special">&lt;</span></a><span class="special">(</span><span class="identifier">IteratorInterface1</span><span class="special">,</span> <span class="identifier">IteratorInterface2</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> IteratorInterface1<span class="special">,</span> <span class="keyword">typename</span> IteratorInterface2<span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="link" href="../boost/stl_interfaces/v1/oper_1_3_40_11_2_3_1_1_3_7.html" title="Function template operator&lt;="><span class="keyword">operator</span><span class="special">&lt;=</span></a><span class="special">(</span><span class="identifier">IteratorInterface1</span><span class="special">,</span> <span class="identifier">IteratorInterface2</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> IteratorInterface1<span class="special">,</span> <span class="keyword">typename</span> IteratorInterface2<span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="link" href="../boost/stl_interfaces/v1/oper_1_3_40_11_2_3_1_1_3_8.html" title="Function template operator&gt;"><span class="keyword">operator</span><span class="special">&gt;</span></a><span class="special">(</span><span class="identifier">IteratorInterface1</span><span class="special">,</span> <span class="identifier">IteratorInterface2</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> IteratorInterface1<span class="special">,</span> <span class="keyword">typename</span> IteratorInterface2<span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="link" href="../boost/stl_interfaces/v1/oper_1_3_40_11_2_3_1_1_3_9.html" title="Function template operator&gt;="><span class="keyword">operator</span><span class="special">&gt;=</span></a><span class="special">(</span><span class="identifier">IteratorInterface1</span><span class="special">,</span> <span class="identifier">IteratorInterface2</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">namespace</span> <span class="identifier">v1_dtl</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Iterator<span class="special">,</span> <span class="keyword">typename</span> DifferenceType<span class="special">,</span> <span class="keyword">typename</span> <span class="special">=</span> <span class="keyword">void</span><span class="special">&gt;</span>
<span class="keyword">struct</span> <a class="link" href="../boost/stl_interfaces/v1/v1_dtl/plus_eq.html" title="Struct template plus_eq">plus_eq</a><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Iterator<span class="special">,</span> <span class="keyword">typename</span> DifferenceType<span class="special">&gt;</span>
<span class="keyword">struct</span> <a class="link" href="../boost/stl_interfaces/v1/v1_dtl/pl_1_3_40_11_2_3_1_1_3_2_2.html" title="Struct template plus_eq&lt;Iterator, DifferenceType, void_t&lt; decltype(std::declval&lt; Iterator &amp; &gt;()+=std::declval&lt; DifferenceType &gt;())&gt;&gt;">plus_eq</a><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">DifferenceType</span><span class="special">,</span> <span class="identifier">void_t</span><span class="special">&lt;</span> <span class="keyword">decltype</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">declval</span><span class="special">&lt;</span> <span class="identifier">Iterator</span> <span class="special">&amp;</span> <span class="special">&gt;</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">declval</span><span class="special">&lt;</span> <span class="identifier">DifferenceType</span> <span class="special">&gt;</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">&gt;</span><span class="special">&gt;</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Iterator<span class="special">,</span> <span class="keyword">typename</span> <span class="special">=</span> <span class="keyword">void</span><span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/stl_interfaces/v1/v1_dtl/ra_iter.html" title="Struct template ra_iter">ra_iter</a><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Iterator<span class="special">&gt;</span>
<span class="keyword">struct</span> <a class="link" href="../boost/stl_interfaces/v1/v1_dtl/ra_1_3_40_11_2_3_1_1_3_2_4.html" title="Struct template ra_iter&lt;Iterator, void_t&lt; typename Iterator::iterator_concept &gt;&gt;">ra_iter</a><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">void_t</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">::</span><span class="identifier">iterator_concept</span> <span class="special">&gt;</span><span class="special">&gt;</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> D<span class="special">,</span> <span class="keyword">typename</span> IteratorConcept<span class="special">,</span> <span class="keyword">typename</span> ValueType<span class="special">,</span>
<span class="keyword">typename</span> Reference<span class="special">,</span> <span class="keyword">typename</span> Pointer<span class="special">,</span>
<span class="keyword">typename</span> DifferenceType<span class="special">&gt;</span>
<span class="keyword">void</span> <a name="boost.stl_interfaces.v1.v1_dtl.derived_iterator"></a><span class="identifier">derived_iterator</span><span class="special">(</span><a class="link" href="../boost/stl_interfaces/v1/iterator_interface.html" title="Struct template iterator_interface">iterator_interface</a><span class="special">&lt;</span> <span class="identifier">D</span><span class="special">,</span> <span class="identifier">IteratorConcept</span><span class="special">,</span> <span class="identifier">ValueType</span><span class="special">,</span> <span class="identifier">Reference</span><span class="special">,</span> <span class="identifier">Pointer</span><span class="special">,</span> <span class="identifier">DifferenceType</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="header.boost.stl_interfaces.reverse_iterator_hpp"></a>Header &lt;<a href="../../../boost/stl_interfaces/reverse_iterator.hpp" target="_top">boost/stl_interfaces/reverse_iterator.hpp</a>&gt;</h4></div></div></div>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">stl_interfaces</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">v1</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> BidiIter<span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/stl_interfaces/v1/reverse_iterator.html" title="Struct template reverse_iterator">reverse_iterator</a><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> BidiIter<span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="keyword">auto</span>
<a name="boost.stl_interfaces.v1.oper_1_3_40_11_2_4_1_1_1_3"></a><span class="keyword">operator</span><span class="special">==</span><span class="special">(</span><a class="link" href="../boost/stl_interfaces/v1/reverse_iterator.html" title="Struct template reverse_iterator">reverse_iterator</a><span class="special">&lt;</span> <span class="identifier">BidiIter</span> <span class="special">&gt;</span> lhs<span class="special">,</span>
<a class="link" href="../boost/stl_interfaces/v1/reverse_iterator.html" title="Struct template reverse_iterator">reverse_iterator</a><span class="special">&lt;</span> <span class="identifier">BidiIter</span> <span class="special">&gt;</span> rhs<span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> BidiIter1<span class="special">,</span> <span class="keyword">typename</span> BidiIter2<span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="keyword">auto</span>
<a name="boost.stl_interfaces.v1.oper_1_3_40_11_2_4_1_1_1_4"></a><span class="keyword">operator</span><span class="special">==</span><span class="special">(</span><a class="link" href="../boost/stl_interfaces/v1/reverse_iterator.html" title="Struct template reverse_iterator">reverse_iterator</a><span class="special">&lt;</span> <span class="identifier">BidiIter1</span> <span class="special">&gt;</span> lhs<span class="special">,</span>
<a class="link" href="../boost/stl_interfaces/v1/reverse_iterator.html" title="Struct template reverse_iterator">reverse_iterator</a><span class="special">&lt;</span> <span class="identifier">BidiIter2</span> <span class="special">&gt;</span> rhs<span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> BidiIter<span class="special">&gt;</span> <span class="keyword">auto</span> <a class="link" href="../boost/stl_interfaces/v1/make_reverse_iterator.html" title="Function template make_reverse_iterator"><span class="identifier">make_reverse_iterator</span></a><span class="special">(</span><span class="identifier">BidiIter</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">namespace</span> <span class="identifier">v1_dtl</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Iter<span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="keyword">auto</span>
<a name="boost.stl_interfaces.v1.v1_dtl.ce_1_3_40_11_2_4_1_1_1_2_1"></a><span class="identifier">ce_dist</span><span class="special">(</span><span class="identifier">Iter</span> f<span class="special">,</span> <span class="identifier">Iter</span> l<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">random_access_iterator_tag</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Iter<span class="special">,</span> <span class="keyword">typename</span> Tag<span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="keyword">auto</span> <a name="boost.stl_interfaces.v1.v1_dtl.ce_1_3_40_11_2_4_1_1_1_2_2"></a><span class="identifier">ce_dist</span><span class="special">(</span><span class="identifier">Iter</span> f<span class="special">,</span> <span class="identifier">Iter</span> l<span class="special">,</span> <span class="identifier">Tag</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Iter<span class="special">&gt;</span> <span class="keyword">constexpr</span> <span class="identifier">Iter</span> <a name="boost.stl_interfaces.v1.v1_dtl.ce_prev"></a><span class="identifier">ce_prev</span><span class="special">(</span><span class="identifier">Iter</span> it<span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Iter<span class="special">,</span> <span class="keyword">typename</span> Offset<span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="keyword">void</span>
<a name="boost.stl_interfaces.v1.v1_dtl.ce_1_3_40_11_2_4_1_1_1_2_4"></a><span class="identifier">ce_adv</span><span class="special">(</span><span class="identifier">Iter</span> <span class="special">&amp;</span> f<span class="special">,</span> <span class="identifier">Offset</span> n<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">random_access_iterator_tag</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Iter<span class="special">,</span> <span class="keyword">typename</span> Offset<span class="special">,</span> <span class="keyword">typename</span> Tag<span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="keyword">void</span> <a name="boost.stl_interfaces.v1.v1_dtl.ce_1_3_40_11_2_4_1_1_1_2_5"></a><span class="identifier">ce_adv</span><span class="special">(</span><span class="identifier">Iter</span> <span class="special">&amp;</span> f<span class="special">,</span> <span class="identifier">Offset</span> n<span class="special">,</span> <span class="identifier">Tag</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span>
<span class="keyword">namespace</span> <span class="identifier">v2</span> <span class="special">{</span>
<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">reverse_iterator</span><span class="special">&lt;</span> <span class="identifier">BidiIter</span> <span class="special">&gt;</span> <a class="link" href="../boost/stl_interfaces/v2/reverse_iterator.html" title="Type definition reverse_iterator"><span class="identifier">reverse_iterator</span></a><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> BidiIter<span class="special">&gt;</span> <span class="keyword">auto</span> <a class="link" href="../boost/stl_interfaces/v2/make_reverse_iterator.html" title="Function template make_reverse_iterator"><span class="identifier">make_reverse_iterator</span></a><span class="special">(</span><span class="identifier">BidiIter</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="header.boost.stl_interfaces.sequence_container_interface_hpp"></a>Header &lt;<a href="../../../boost/stl_interfaces/sequence_container_interface.hpp" target="_top">boost/stl_interfaces/sequence_container_interface.hpp</a>&gt;</h4></div></div></div>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">stl_interfaces</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">v1</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Derived<span class="special">,</span> <span class="identifier">element_layout</span> Contiguity<span class="special">&gt;</span>
<span class="keyword">struct</span> <a class="link" href="../boost/stl_interfaces/v1/sequ_1_3_40_11_2_5_1_1_1_1.html" title="Struct template sequence_container_interface">sequence_container_interface</a><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ContainerInterface<span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="link" href="../boost/stl_interfaces/v1/swap.html" title="Function template swap"><span class="identifier">swap</span></a><span class="special">(</span><span class="identifier">ContainerInterface</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">ContainerInterface</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ContainerInterface<span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="keyword">auto</span>
<a class="link" href="../boost/stl_interfaces/v1/oper_1_3_40_11_2_5_1_1_1_4.html" title="Function template operator=="><span class="keyword">operator</span><span class="special">==</span></a><span class="special">(</span><span class="identifier">ContainerInterface</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">ContainerInterface</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ContainerInterface<span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="keyword">auto</span>
<a class="link" href="../boost/stl_interfaces/v1/oper_1_3_40_11_2_5_1_1_1_5.html" title="Function template operator!="><span class="keyword">operator</span><span class="special">!=</span></a><span class="special">(</span><span class="identifier">ContainerInterface</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">ContainerInterface</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ContainerInterface<span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="keyword">auto</span>
<a class="link" href="../boost/stl_interfaces/v1/oper_1_3_40_11_2_5_1_1_1_6.html" title="Function template operator&lt;"><span class="keyword">operator</span><span class="special">&lt;</span></a><span class="special">(</span><span class="identifier">ContainerInterface</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">ContainerInterface</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ContainerInterface<span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="keyword">auto</span>
<a class="link" href="../boost/stl_interfaces/v1/oper_1_3_40_11_2_5_1_1_1_7.html" title="Function template operator&lt;="><span class="keyword">operator</span><span class="special">&lt;=</span></a><span class="special">(</span><span class="identifier">ContainerInterface</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">ContainerInterface</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ContainerInterface<span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="keyword">auto</span>
<a class="link" href="../boost/stl_interfaces/v1/oper_1_3_40_11_2_5_1_1_1_8.html" title="Function template operator&gt;"><span class="keyword">operator</span><span class="special">&gt;</span></a><span class="special">(</span><span class="identifier">ContainerInterface</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">ContainerInterface</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ContainerInterface<span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="keyword">auto</span>
<a class="link" href="../boost/stl_interfaces/v1/oper_1_3_40_11_2_5_1_1_1_9.html" title="Function template operator&gt;="><span class="keyword">operator</span><span class="special">&gt;=</span></a><span class="special">(</span><span class="identifier">ContainerInterface</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">ContainerInterface</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">namespace</span> <span class="identifier">v1_dtl</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> D<span class="special">,</span> <span class="keyword">typename</span> <span class="special">=</span> <span class="keyword">void</span><span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/stl_interfaces/v1/v1_dtl/clear_impl.html" title="Struct template clear_impl">clear_impl</a><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> D<span class="special">&gt;</span>
<span class="keyword">struct</span> <a class="link" href="../boost/stl_interfaces/v1/v1_dtl/cl_1_3_40_11_2_5_1_1_1_2_2.html" title="Struct template clear_impl&lt;D, void_t&lt; decltype(std::declval&lt; D &gt;().clear())&gt;&gt;">clear_impl</a><span class="special">&lt;</span><span class="identifier">D</span><span class="special">,</span> <span class="identifier">void_t</span><span class="special">&lt;</span> <span class="keyword">decltype</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">declval</span><span class="special">&lt;</span> <span class="identifier">D</span> <span class="special">&gt;</span><span class="special">(</span><span class="special">)</span><span class="special">.</span><span class="identifier">clear</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">&gt;</span><span class="special">&gt;</span><span class="special">;</span>
<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">is_convertible</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span> <span class="identifier">Iter</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">iterator_category</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">input_iterator_tag</span> <span class="special">&gt;</span> <a name="boost.stl_interfaces.v1.v1_dtl.in_iter"></a><span class="identifier">in_iter</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> D<span class="special">,</span> <span class="identifier">element_layout</span> Contiguity<span class="special">&gt;</span>
<span class="keyword">void</span> <a name="boost.stl_interfaces.v1.v1_dtl.derived_container"></a><span class="identifier">derived_container</span><span class="special">(</span><a class="link" href="../boost/stl_interfaces/v1/sequ_1_3_40_11_2_5_1_1_1_1.html" title="Struct template sequence_container_interface">sequence_container_interface</a><span class="special">&lt;</span> <span class="identifier">D</span><span class="special">,</span> <span class="identifier">Contiguity</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="header.boost.stl_interfaces.view_interface_hpp"></a>Header &lt;<a href="../../../boost/stl_interfaces/view_interface.hpp" target="_top">boost/stl_interfaces/view_interface.hpp</a>&gt;</h4></div></div></div>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">stl_interfaces</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">v1</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Derived<span class="special">,</span> <span class="identifier">element_layout</span> Contiguity<span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/stl_interfaces/v1/view_interface.html" title="Struct template view_interface">view_interface</a><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ViewInterface<span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="keyword">auto</span> <a class="link" href="../boost/stl_interfaces/v1/oper_1_3_40_11_2_6_1_1_1_3.html" title="Function template operator!="><span class="keyword">operator</span><span class="special">!=</span></a><span class="special">(</span><span class="identifier">ViewInterface</span><span class="special">,</span> <span class="identifier">ViewInterface</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">namespace</span> <span class="identifier">v1_dtl</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> D<span class="special">,</span> <span class="identifier">element_layout</span> Contiguity<span class="special">&gt;</span>
<span class="keyword">void</span> <a name="boost.stl_interfaces.v1.v1_dtl.derived_view"></a><span class="identifier">derived_view</span><span class="special">(</span><a class="link" href="../boost/stl_interfaces/v1/view_interface.html" title="Struct template view_interface">view_interface</a><span class="special">&lt;</span> <span class="identifier">D</span><span class="special">,</span> <span class="identifier">Contiguity</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span>
<span class="keyword">namespace</span> <span class="identifier">v2</span> <span class="special">{</span>
<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ranges</span><span class="special">::</span><span class="identifier">view_interface</span><span class="special">&lt;</span> <span class="identifier">D</span> <span class="special">&gt;</span> <a class="link" href="../boost/stl_interfaces/v2/view_interface.html" title="Type definition view_interface"><span class="identifier">view_interface</span></a><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2019 T. Zachary Laine<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="compiler_support.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../stl_interfaces.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/stl_interfaces/v1/v1_dtl/decrementable_sentinel.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>