Boost LA

scalar

#include <boost/la/scalar.hpp>

namespace
boost
    {
    namespace
    la
        {
        template <class T>
        struct
        scalar
            {
            typedef /*unspecified*/ type;
            };
        }
    }

The expression vector_traits<T>::scalar_type evaluates to the scalar type of a vector type T (if is_vector<T>::value is true).

The expression matrix_traits<T>::scalar_type evaluates to the scalar type of a matrix type T (if is_matrix<T>::value is true).

The expression scalar<T>::scalar_type is similar, except that it automatically detects whether T is a vector or a matrix type.