blaze::SubmatrixTrait< MT > Struct Template Reference

Base template for the SubmatrixTrait class. More...

#include <SubmatrixTrait.h>

Detailed Description

template<typename MT>
struct blaze::SubmatrixTrait< MT >

Base template for the SubmatrixTrait class.

General

The SubmatrixTrait class template offers the possibility to select the resulting data type when creating a submatrix of a dense or sparse matrix. SubmatrixTrait defines the nested type Type, which represents the resulting data type of the submatrix operation. In case the given data type is not a dense or sparse matrix type, the resulting data type Type is set to INVALID_TYPE. Note that const and volatile qualifiers and reference modifiers are generally ignored.

Per default, the SubmatrixTrait template only supports the following matrix types:

Creating custom specializations

It is possible to specialize the SubmatrixTrait template for additional user-defined matrix types. The following example shows the according specialization for the DynamicMatrix class template:

template< typename T1, bool SO >
struct SubmatrixTrait< DynamicMatrix<T1,SO> >
{
typedef DynamicMatrix<T1,SO> Type;
};


Examples

The following example demonstrates the use of the SubmatrixTrait template, where depending on the given matrix type the according result type is selected:

// Definition of the result type of a row-major dynamic matrix
typedef typename SubmatrixTrait<MatrixType1>::Type ResultType1;
// Definition of the result type of a column-major static matrix
typedef typename SubmatrixTrait<MatrixType2>::Type ResultType2;

The documentation for this struct was generated from the following file: