#include <boost/qvm/q_traits.hpp>
#include <boost/qvm/m_traits.hpp>
#include <boost/qvm/v_traits.hpp>
namespace
boost
{
namespace
qvm
{
//*** Type traits ***
template <class T>
struct is_q
{
static bool const value=/*unspecified*/;
};
template <class Q>
struct q_traits
{
/*main template members unspecified*/
};
/*
User-defined (possibly partial) specializations:
template <>
struct q_traits<Q>
{
typedef /*user-defined*/ scalar_type;
template <int I> static inline scalar_type r( Quaternion const & q );
template <int I> static inline scalar_type & w( Quaternion & q );
};
*/
template <class T>
struct is_v
{
static bool const value=/*unspecified*/;
};
template <class V>
struct v_traits
{
/*main template members unspecified*/
};
/*
User-defined (possibly partial) specializations:
template <>
struct v_traits<V>
{
static int const dim = /*user-defined*/;
typedef /*user-defined*/ scalar_type;
template <int I> static inline scalar_type r( Vector const & v );
template <int I> static inline scalar_type & w( Vector & v );
static inline scalar_type ir( int i, Vector const & v );
static inline scalar_type & iw( int i, Vector & v );
};
*/
template <class T>
struct is_m
{
static bool const value=/*unspecified*/;
};
template <class M>
struct m_traits
{
/*main template members unspecified*/
};
/*
User-defined (possibly partial) specializations:
template <>
struct m_traits<M>
{
static int const rows = /*user-defined*/;
static int const cols = /*user-defined*/;
typedef /*user-defined*/ scalar_type;
template <int R,int C> static inline scalar_type r( Matrix const & m );
template <int R,int C> static inline scalar_type & w( Matrix & m );
static inline scalar_type ir( int r, int c, Matrix const & m );
static inline scalar_type & iw( int r, int c, Matrix & m );
};
*/
}
}