| Home | Libraries | People | FAQ | More

##### at

###### Description

Returns the result type of `at`[7].

###### Synopsis

    template<
        typename Seq,
        typename M>
    struct at
    {
        typedef unspecified type;
    };

Table 1.28. Parameters

Parameter | Requirement | Description
--- | --- | ---
`Seq` | A model of Random Access Sequence | Argument sequence
`M` | An MPL Integral Constant | Index of element

###### Expression Semantics

    result_of::at<Seq, M>::type

Return type: Any type.

Precondition: `0 <= M::value < `result_of::size`<Seq>::value` (where `Seq` is not Unbounded Sequence)

Semantics: Returns the result type of using `at` to access the `M`th element of `Seq`.

###### Header

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

###### Example

    typedef vector<int,float,char> vec;
    BOOST_MPL_ASSERT((boost::is_same<result_of::at<vec, boost::mpl::int_<1> >::type, float&>));

[7] `result_of::at` reflects the actual return type of the function `at`. Sequence(s) typically return references to its elements via the `at` function. If you want to get the actual element type, use `result_of::value_at`