| Home | Libraries | People | FAQ | More

##### at_c

###### Description

Returns the N-th element from the beginning of the sequence.

###### Synopsis

    template <int N, typename Sequence>
    typename result_of::at_c<Sequence, N>::type
    at_c(Sequence& seq);

    template <int N, typename Sequence>
    typename result_of::at_c<Sequence const, N>::type
    at_c(Sequence const& seq);

###### Parameters

Parameter | Requirement | Description
--- | --- | ---
`seq` | Model of Random Access Sequence | The sequence we wish to investigate.
`N` | An integral constant | An index from the beginning of the sequence.

###### Expression Semantics

    at_c<N>(seq);

Return type: Returns a reference to the N-th element from the beginning of the sequence `seq` if `seq` is mutable and `e = o`, where `e` is the N-th element from the beginning of the sequence, is a valid expression. Else, returns a type convertible to the N-th element from the beginning of the sequence.

Precondition: `0 <= N < `size`(seq)` (where `seq` is not Unbounded Sequence)

Semantics: Equivalent to

    deref(advance<N>(begin(s)))

###### Header

    #include <boost/fusion/sequence/intrinsic/at_c.hpp>
    #include <boost/fusion/include/at_c.hpp>

###### Example

    vector<int, int, int> v(1, 2, 3);
    assert(at_c<1>(v) == 2);