...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
template< typename Sequence , long n > struct at_c { typedef unspecified type; };
Returns a type identical to the n
-th element from the beginning of the sequence. at_c<Sequence,n>::type
is a shorcut notation for at< Sequence, integral_c<long,n> >::type
.
#include "boost/mpl/at.hpp"
Parameter | Requirement | Description |
---|---|---|
Sequence | A model of Forward Sequence | A sequence being examined. |
n | An compile-time integral constant | An offset from the beginning of the sequence that specifies the element to be retrieved. |
Expression | Expression type | Precondition | Semantics | Postcondition |
---|---|---|---|---|
typedef at_c<Sequence,n>::type t; | A type | 0 <= n < size<Sequence>::type::value | Equivalent to typedef at< Sequence, integral_c<long,n> >::type t; |
Depends on the implementation of the particular sequence it is applied to. Linear in the worst case, or amortized constant time.
typedef range_c<long,10,50> range; BOOST_STATIC_ASSERT(at_c<range,0>::type::value == 10); BOOST_STATIC_ASSERT(at_c<range,10>::type::value == 20); BOOST_STATIC_ASSERT(at_c<range,40>::type::value == 50);
Forward Sequence, at
, front
, back