]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/mpl/doc/src/refmanual/at_c.rst
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / mpl / doc / src / refmanual / at_c.rst
1 .. Sequences/Intrinsic Metafunctions//at_c
2
3 at_c
4 ====
5
6 Synopsis
7 --------
8
9 .. parsed-literal::
10
11 template<
12 typename Sequence
13 , long n
14 >
15 struct at_c
16 {
17 typedef |unspecified| type;
18 };
19
20
21
22 Description
23 -----------
24
25 Returns a type identical to the ``n``\ th element from the beginning of
26 the sequence. ``at_c<Sequence,n>::type`` is a shorcut notation for
27 ``at< Sequence, long_<n> >::type``.
28
29
30 Header
31 ------
32
33 .. parsed-literal::
34
35 #include <boost/mpl/at.hpp>
36
37
38
39 Parameters
40 ----------
41
42 +---------------+-----------------------------------+-----------------------------------------------+
43 | Parameter | Requirement | Description |
44 +===============+===================================+===============================================+
45 | ``Sequence`` | |Forward Sequence| | A sequence to be examined. |
46 +---------------+-----------------------------------+-----------------------------------------------+
47 | ``n`` | A compile-time integral constant | An offset from the beginning of the sequence |
48 | | | specifying the element to be retrieved. |
49 +---------------+-----------------------------------+-----------------------------------------------+
50
51
52 Expression semantics
53 --------------------
54
55
56 .. parsed-literal::
57
58 typedef at_c<Sequence,n>::type t;
59
60 :Return type:
61 A type
62
63 :Precondition:
64 ``0 <= n < size<Sequence>::value``
65
66 :Semantics:
67 Equivalent to
68
69 .. parsed-literal::
70
71 typedef at< Sequence, long_<n> >::type t;
72
73
74 Complexity
75 ----------
76
77 +-------------------------------+-----------------------------------+
78 | Sequence archetype | Complexity |
79 +===============================+===================================+
80 | |Forward Sequence| | Linear. |
81 +-------------------------------+-----------------------------------+
82 | |Random Access Sequence| | Amortized constant time. |
83 +-------------------------------+-----------------------------------+
84
85
86 Example
87 -------
88
89 .. parsed-literal::
90
91 typedef range_c<long,10,50> range;
92 BOOST_MPL_ASSERT_RELATION( (at_c< range,0 >::type::value), ==, 10 );
93 BOOST_MPL_ASSERT_RELATION( (at_c< range,10 >::type::value), ==, 20 );
94 BOOST_MPL_ASSERT_RELATION( (at_c< range,40 >::type::value), ==, 50 );
95
96
97 See also
98 --------
99
100 |Forward Sequence|, |Random Access Sequence|, |at|, |front|, |back|
101
102
103 .. copyright:: Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams
104 Distributed under the Boost Software License, Version 1.0. (See accompanying
105 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)