Files
boost_fusion/doc/html/fusion/sequence/concepts/random_access_sequence.html
T
Eric Niebler 5b6d08974e Merged revisions 40861-40888 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r40862 | dave | 2007-11-06 15:39:09 -0800 (Tue, 06 Nov 2007) | 2 lines
  
  Added missing copyright/license
........
  r40863 | djowel | 2007-11-06 18:12:28 -0800 (Tue, 06 Nov 2007) | 1 line
  
  added copyright and license info for each page.
........
  r40864 | aaron_windsor | 2007-11-06 18:30:38 -0800 (Tue, 06 Nov 2007) | 1 line
  
  Shortening file name of a graph test to < 32 characters
........
  r40865 | djowel | 2007-11-06 18:34:18 -0800 (Tue, 06 Nov 2007) | 1 line
  
  added license info in copyright notice at the footer
........
  r40866 | djowel | 2007-11-06 19:06:23 -0800 (Tue, 06 Nov 2007) | 1 line
  
  added license info in copyright notice at the footer
........
  r40867 | djowel | 2007-11-06 19:23:31 -0800 (Tue, 06 Nov 2007) | 1 line
  
  added license info in copyright notice at the footer
........
  r40868 | djowel | 2007-11-06 19:25:59 -0800 (Tue, 06 Nov 2007) | 1 line
  
  added copyright and license info for each page.
........
  r40869 | djowel | 2007-11-06 19:27:38 -0800 (Tue, 06 Nov 2007) | 1 line
  
  added license info in copyright notice at the footer
........
  r40870 | djowel | 2007-11-06 19:30:01 -0800 (Tue, 06 Nov 2007) | 1 line
  
  added copyright and license info for each page.
........
  r40871 | djowel | 2007-11-06 19:35:49 -0800 (Tue, 06 Nov 2007) | 1 line
  
  added copyright and license info for each page.
........
  r40872 | djowel | 2007-11-06 19:37:51 -0800 (Tue, 06 Nov 2007) | 1 line
  
  added copyright and license info for each page.
........
  r40873 | djowel | 2007-11-06 19:46:23 -0800 (Tue, 06 Nov 2007) | 1 line
  
  added copyright and license info for each page.
........
  r40874 | chris_kohlhoff | 2007-11-06 22:49:36 -0800 (Tue, 06 Nov 2007) | 2 lines
  
  Add copyright notice.
........
  r40875 | chris_kohlhoff | 2007-11-06 22:53:17 -0800 (Tue, 06 Nov 2007) | 2 lines
  
  Add myself as asio maintainer.
........
  r40876 | chris_kohlhoff | 2007-11-06 23:23:53 -0800 (Tue, 06 Nov 2007) | 2 lines
  
  Add asio.
........
  r40877 | joaquin | 2007-11-07 00:45:27 -0800 (Wed, 07 Nov 2007) | 1 line
  
  reapplied change at rev 40284
........
  r40878 | johnmaddock | 2007-11-07 02:07:08 -0800 (Wed, 07 Nov 2007) | 1 line
  
  Ooops, got the pp-logic wrong and disable long double support for all Unix platforms, instead of just Intel on Linux prior to version 10.
........
  r40879 | johnmaddock | 2007-11-07 02:09:50 -0800 (Wed, 07 Nov 2007) | 1 line
  
  Fix calls to fpclassify so they don't trigger macro expansion when fpclassify is a macro.
........
  r40880 | t_schwinger | 2007-11-07 02:14:42 -0800 (Wed, 07 Nov 2007) | 3 lines
  
  adds FunctionTypes
........
  r40881 | johnmaddock | 2007-11-07 03:50:02 -0800 (Wed, 07 Nov 2007) | 1 line
  
  Change test (again) so that the range of values tested matches original test: last change started testing more extreme input values, which caused regressions on Mac OS X.
........
  r40882 | johnmaddock | 2007-11-07 03:59:39 -0800 (Wed, 07 Nov 2007) | 3 lines
  
  Disabled use of long double when BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS is defined.
  Disabled special-double precision error rates when BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS is defined.
........
  r40883 | johnmaddock | 2007-11-07 04:04:01 -0800 (Wed, 07 Nov 2007) | 1 line
  
  Oops get the name of test right!
........
  r40884 | anthonyw | 2007-11-07 04:10:17 -0800 (Wed, 07 Nov 2007) | 1 line
  
  Added missing licence and copyright
........
  r40885 | garcia | 2007-11-07 04:25:16 -0800 (Wed, 07 Nov 2007) | 2 lines
  
  added logging library.
........
  r40886 | garcia | 2007-11-07 05:38:53 -0800 (Wed, 07 Nov 2007) | 2 lines
  
  Exception was accepted.
........
  r40887 | fcacciola | 2007-11-07 06:12:15 -0800 (Wed, 07 Nov 2007) | 1 line
  
  Added explicit failures for newly discovered GCC const ref binding bug (see Ticket #1301)
........


[SVN r40891]
2007-11-07 16:22:38 +00:00

377 lines
18 KiB
HTML
Raw 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.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Random
Access Sequence</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
<link rel="start" href="../../../index.html" title="Chapter 1. Fusion 2.0">
<link rel="up" href="../concepts.html" title="Concepts">
<link rel="prev" href="bidirectional_sequence.html" title="Bidirectional
Sequence">
<link rel="next" href="associative_sequence.html" title="Associative
Sequence">
</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.htm">Home</a></td>
<td align="center"><a href="../../../../../../libraries.htm">Libraries</a></td>
<td align="center"><a href="../../../../../../../people/people.htm">People</a></td>
<td align="center"><a href="../../../../../../../more/faq.htm">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="bidirectional_sequence.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="associative_sequence.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="fusion.sequence.concepts.random_access_sequence"></a><a href="random_access_sequence.html" title="Random
Access Sequence">Random
Access Sequence</a></h4></div></div></div>
<a name="fusion.sequence.concepts.random_access_sequence.description"></a><h5>
<a name="id491375"></a>
<a href="random_access_sequence.html#fusion.sequence.concepts.random_access_sequence.description">Description</a>
</h5>
<p>
A Random Access Sequence is a <a href="bidirectional_sequence.html" title="Bidirectional
Sequence">Bidirectional
Sequence</a> whose iterators model <a href="../../iterator/concepts/random_access_iterator.html" title="Random
Access Iterator">Random
Access Iterator</a>. It guarantees constant time access to arbitrary
sequence elements.
</p>
<a name="fusion.sequence.concepts.random_access_sequence.refinement_of"></a><h5>
<a name="id491426"></a>
<a href="random_access_sequence.html#fusion.sequence.concepts.random_access_sequence.refinement_of">Refinement
of</a>
</h5>
<p>
<a href="bidirectional_sequence.html" title="Bidirectional
Sequence">Bidirectional
Sequence</a>
</p>
<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
<dt><span class="term"><tt class="computeroutput"><span class="identifier">s</span></tt></span></dt>
<dd><p>
A Random Access Sequence
</p></dd>
<dt><span class="term"><tt class="computeroutput"><span class="identifier">S</span></tt></span></dt>
<dd><p>
A Random Access Sequence type
</p></dd>
<dt><span class="term"><tt class="computeroutput"><span class="identifier">N</span></tt></span></dt>
<dd><p>
An <a href="http://www.boost.org/libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
Integral Constant</a>
</p></dd>
<dt><span class="term"><tt class="computeroutput"><span class="identifier">o</span></tt></span></dt>
<dd><p>
An arbitrary object
</p></dd>
<dt><span class="term"><tt class="computeroutput"><span class="identifier">e</span></tt></span></dt>
<dd><p>
A Sequence element
</p></dd>
</dl>
</div>
<a name="fusion.sequence.concepts.random_access_sequence.valid_expressions"></a><h5>
<a name="id491597"></a>
<a href="random_access_sequence.html#fusion.sequence.concepts.random_access_sequence.valid_expressions">Valid
Expressions</a>
</h5>
<p>
In addition to the requirements defined in <a href="bidirectional_sequence.html" title="Bidirectional
Sequence">Bidirectional
Sequence</a>, for any Random Access Sequence the following must be met:
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Expression
</p>
</th>
<th>
<p>
Return type
</p>
</th>
<th>
<p>
Type Requirements
</p>
</th>
<th>
<p>
Runtime Complexity
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<tt class="computeroutput"><a href="../intrinsic/functions/begin.html" title="begin"><tt class="computeroutput"><span class="identifier">begin</span></tt></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt>
</p>
</td>
<td>
<p>
<a href="../../iterator/concepts/random_access_iterator.html" title="Random
Access Iterator">Random
Access Iterator</a>
</p>
</td>
<td>
<p>
</p>
</td>
<td>
<p>
Constant
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt class="computeroutput"><a href="../intrinsic/functions/end.html" title="end"><tt class="computeroutput"><span class="identifier">end</span></tt></a><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt>
</p>
</td>
<td>
<p>
<a href="../../iterator/concepts/random_access_iterator.html" title="Random
Access Iterator">Random
Access Iterator</a>
</p>
</td>
<td>
<p>
</p>
</td>
<td>
<p>
Constant
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt class="computeroutput"><a href="../intrinsic/functions/at.html" title="at"><tt class="computeroutput"><span class="identifier">at</span></tt></a><span class="special">&lt;</span><span class="identifier">N</span><span class="special">&gt;(</span><span class="identifier">s</span><span class="special">)</span></tt>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
</p>
</td>
<td>
<p>
Constant
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt class="computeroutput"><a href="../intrinsic/functions/at.html" title="at"><tt class="computeroutput"><span class="identifier">at</span></tt></a><span class="special">&lt;</span><span class="identifier">N</span><span class="special">&gt;(</span><span class="identifier">s</span><span class="special">)</span>
<span class="special">=</span> <span class="identifier">o</span></tt>
</p>
</td>
<td>
<p>
Any type
</p>
</td>
<td>
<p>
<tt class="computeroutput"><span class="identifier">s</span></tt> is mutable and
<tt class="computeroutput"><span class="identifier">e</span> <span class="special">=</span>
<span class="identifier">o</span></tt>, where <tt class="computeroutput"><span class="identifier">e</span></tt> is the first element in the
sequence, is a valid expression.
</p>
</td>
<td>
<p>
Constant
</p>
</td>
</tr>
</tbody>
</table></div>
<a name="fusion.sequence.concepts.random_access_sequence.result_type_expressions"></a><h5>
<a name="id492056"></a>
<a href="random_access_sequence.html#fusion.sequence.concepts.random_access_sequence.result_type_expressions">Result
Type Expressions</a>
</h5>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Expression
</p>
</th>
<th>
<p>
Compile Time Complexity
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<tt class="computeroutput"><a href="../intrinsic/metafunctions/begin.html" title="begin"><tt class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">begin</span></tt></a><span class="special">&lt;</span><span class="identifier">S</span><span class="special">&gt;::</span><span class="identifier">type</span></tt>
</p>
</td>
<td>
<p>
Amortized constant time
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt class="computeroutput"><a href="../intrinsic/metafunctions/end.html" title="end"><tt class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">end</span></tt></a><span class="special">&lt;</span><span class="identifier">S</span><span class="special">&gt;::</span><span class="identifier">type</span></tt>
</p>
</td>
<td>
<p>
Amortized constant time
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt class="computeroutput"><a href="../intrinsic/metafunctions/at.html" title="at"><tt class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at</span></tt></a><span class="special">&lt;</span><span class="identifier">S</span><span class="special">,</span>
<span class="identifier">N</span><span class="special">&gt;::</span><span class="identifier">type</span></tt>
</p>
</td>
<td>
<p>
Amortized constant time
</p>
</td>
</tr>
<tr>
<td>
<p>
<tt class="computeroutput"><a href="../intrinsic/metafunctions/value_at.html" title="value_at"><tt class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_at</span></tt></a><span class="special">&lt;</span><span class="identifier">S</span><span class="special">,</span>
<span class="identifier">N</span><span class="special">&gt;::</span><span class="identifier">type</span></tt>
</p>
</td>
<td>
<p>
Amortized constant time
</p>
</td>
</tr>
</tbody>
</table></div>
<div class="sidebar"><p>
<span class="inlinemediaobject"><img src="../../../images/note.png" alt="note"></span> <tt class="computeroutput"><a href="../intrinsic/metafunctions/at.html" title="at"><tt class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at</span></tt></a><span class="special">&lt;</span><span class="identifier">S</span><span class="special">,</span> <span class="identifier">N</span><span class="special">&gt;</span></tt> returns the actual type returned by
<tt class="computeroutput"><a href="../intrinsic/functions/at.html" title="at"><tt class="computeroutput"><span class="identifier">at</span></tt></a><span class="special">&lt;</span><span class="identifier">N</span><span class="special">&gt;(</span><span class="identifier">s</span><span class="special">)</span></tt>. In
most cases, this is a reference. Hence, there is no way to know the exact
element type using <tt class="computeroutput"><a href="../intrinsic/metafunctions/at.html" title="at"><tt class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at</span></tt></a><span class="special">&lt;</span><span class="identifier">S</span><span class="special">,</span> <span class="identifier">N</span><span class="special">&gt;</span></tt>.The element at <tt class="computeroutput"><span class="identifier">N</span></tt>
may actually be a reference to begin with. For this purpose, you can use
<tt class="computeroutput"><a href="../intrinsic/metafunctions/value_at.html" title="value_at"><tt class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_at</span></tt></a><span class="special">&lt;</span><span class="identifier">S</span><span class="special">,</span> <span class="identifier">N</span><span class="special">&gt;</span></tt>.
</p></div>
<a name="fusion.sequence.concepts.random_access_sequence.expression_semantics"></a><h5>
<a name="id492687"></a>
<a href="random_access_sequence.html#fusion.sequence.concepts.random_access_sequence.expression_semantics">Expression
Semantics</a>
</h5>
<p>
The semantics of an expression are defined only where they differ from,
or are not defined in <a href="bidirectional_sequence.html" title="Bidirectional
Sequence">Bidirectional
Sequence</a>.
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Expression
</p>
</th>
<th>
<p>
Semantics
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<tt class="computeroutput"><a href="../intrinsic/functions/at.html" title="at"><tt class="computeroutput"><span class="identifier">at</span></tt></a><span class="special">&lt;</span><span class="identifier">N</span><span class="special">&gt;(</span><span class="identifier">s</span><span class="special">)</span></tt>
</p>
</td>
<td>
<p>
The Nth element from the beginning of the sequence; see <a href="../intrinsic/functions/at.html" title="at"><tt class="computeroutput"><span class="identifier">at</span></tt></a>.
</p>
</td>
</tr></tbody>
</table></div>
<a name="fusion.sequence.concepts.random_access_sequence.models"></a><h5>
<a name="id492848"></a>
<a href="random_access_sequence.html#fusion.sequence.concepts.random_access_sequence.models">Models</a>
</h5>
<div class="itemizedlist"><ul type="disc">
<li><a href="../../adapted/std__pair.html" title="std::pair"><tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></tt></a></li>
<li><a href="../../adapted/boost__array.html" title="boost::array"><tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span></tt></a></li>
<li><a href="../../container/vector.html" title="vector"><tt class="computeroutput"><span class="identifier">vector</span></tt></a></li>
<li><a href="../../view/reverse_view.html" title="reverse_view"><tt class="computeroutput"><span class="identifier">reverse_view</span></tt></a></li>
<li>
<a href="../../view/iterator_range.html" title="iterator_range"><tt class="computeroutput"><span class="identifier">iterator_range</span></tt></a>
(where adapted sequence is a Random Access Sequence)
</li>
<li>
<a href="../../view/transform_view.html" title="transform_view"><tt class="computeroutput"><span class="identifier">transform_view</span></tt></a>
(where adapted sequence is a Random Access Sequence)
</li>
<li>
<a href="../../view/zip_view.html" title="zip_view"><tt class="computeroutput"><span class="identifier">zip_view</span></tt></a>
(where adapted sequences are models Random Access Sequence)
</li>
</ul></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"><small>Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias
Schwinger<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></small></div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="bidirectional_sequence.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="associative_sequence.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
</body>
</html>