# QVM: Quaternions, Vectors, Matrices

### boost/qvm/quat_traits.hpp

This header defines the quat_traits template which can be specialized to register user-defined quaternion types into Boost QVM.

### Synopsis:

#include <boost/qvm/quat_traits.hpp>

    namespace boost
    {
        namespace qvm
        {
            template <class T>
            struct is_quat
            {
                static bool const value=/*unspecified*/;
            };

            template <class Q>
            struct quat_traits
            {
                /*main template members unspecified*/
            };

            /*
            User-defined (possibly partial) specializations:

            template <>
            struct quat_traits<Q>
            {
                typedef /*user-defined*/ scalar_type;

                template <int I> static inline scalar_type read_element( Quaternion const & q );
                template <int I> static inline scalar_type & write_element( Quaternion & q );
            };
            */
        }
    }

See also: is_quat | quat_traits