# QVM: Quaternions, Vectors, Matrices

### vec_index_read

#include <boost/qvm/vec_index.hpp>

    namespace boost
    {
        namespace qvm
        {
            //Only enabled if:
            //  is_vec<A>::value
            template <class A>
            typename vec_traits<A>::scalar_type
            vec_index_read( A const & a, int i );
        }
    }

#### Returns:

The i-th element of a.

#### Preconditions:

i >= 0 && i < vec_traits<A>::dim.

#### Note:

This function uses template metaprogramming and can be used even if the optional access function vec_traits<A>::read_element_idx is not available.

See also: boost/qvm/vec_index.hpp