Boost QVM

Generic Programming Utilities

#include <boost/qvm/deduce_q.hpp> 
#include <boost/qvm/deduce_v.hpp> 
#include <boost/qvm/deduce_m.hpp> 
#include <boost/qvm/deduce_s.hpp> 

namespace boost
{
    namespace qvm
    {
        //*** Generic programming utilities ***
        
        template <class Q>
        struct deduce_q
        {
            typedef Q type;
        };        
        
        template <class A,class B>
        struct deduce_q2
        {
            typedef /*unspecified*/ type;
        };        
        
        template <
            class V,
            int Dim=v_traits<Vector>::dim>
        struct deduce_v
        {
            typedef /*unspecified*/ type;
        };        
        
        template <class A,class B,int Dim>
        struct deduce_v2
        {
            typedef /*unspecified*/ type;
        };        
        
        template <
            class M,
            int Rows=m_traits<Matrix>::rows,
            int Cols=m_traits<Matrix>::cols>
        struct deduce_m
        {
            typedef /*unspecified*/ type;
        };        
        
        template <class A,class B,int Rows,int Cols>
        struct deduce_m2
        {
            typedef /*unspecified*/ type;
        };        
        
        template <class A,class B>
        struct deduce_s
        {
            typedef typename impl<A,B>::type type;
        };        
        
        template <class Scalar>
        struct s_traits
        {
            BOOST_QVM_INLINE_CRITICAL
            static Scalar value( int v )
            {
                return Scalar(v);
            }
        };        
        
        template <class T>
        struct scalar
        {
            typedef /*exact definition unspecified*/ type;
        };
    }
}

See also: Boost QVM | Synopsis