# at_c

### Synopsis

    template<
          typename Sequence
        , long n
        >
    struct at_c
    {
        typedef unspecified type;
    };

### Description

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`.

### Definition

    #include "boost/mpl/at.hpp"

### Parameters

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 semantics

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;` |

### Complexity

Depends on the implementation of the particular sequence it is applied to. Linear in the worst case, or amortized constant time.

### Example

    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);

### See also

Forward Sequence, `at`, `front`, `back`

Table of Contents
Last edited October 21, 2002 4:09 am