Boost LA

Generic Programming Utilities

#include <boost/la/deduce_matrix.hpp> 
#include <boost/la/deduce_vector.hpp> 
#include <boost/la/deduce_scalar.hpp> 
#include <boost/la/scalar.hpp>

namespace
boost
    {
    namespace
    la
        {
        //*** Generic programming utilities ***
        
        template <
            class Matrix,
            int Rows=matrix_traits<Matrix>::rows,
            int Cols=matrix_traits<Matrix>::cols,
            class Scalar=typename matrix_traits<Matrix>::scalar_type>
        struct
        deduce_matrix
            {
            typedef /*unspecified*/ type;
            };        
        
        template <class A,class B,int Rows,int Cols>
        struct
        deduce_matrix2
            {
            typedef /*unspecified*/ type;
            };        
        
        template <
            class Vector,
            int Dim=vector_traits<Vector>::dim,
            class Scalar=typename vector_traits<Vector>::scalar_type>
        struct
        deduce_vector
            {
            typedef /*unspecified*/ type;
            };        
        
        template <class A,class B,int Dim>
        struct
        deduce_vector2
            {
            typedef /*unspecified*/ type;
            };        
        
        template <class A,class B>
        struct
        deduce_scalar
            {
            typedef typename impl<A,B>::type type;
            };        
        
        template <class T>
        struct
        scalar
            {
            typedef /*unspecified*/ type;
            };
        }
    }

See also: Boost LA | Synopsis