All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
blaze::ColumnTrait< MT > Struct Template Reference

Base template for the ColumnTrait class. More...

#include <ColumnTrait.h>

Detailed Description

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

Base template for the ColumnTrait class.

General

The ColumnTrait class template offers the possibility to select the resulting data type when creating a view on a specific column of a dense or sparse matrix. ColumnTrait defines the nested type Type, which represents the resulting data type of the column 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 ColumnTrait template only supports the following matrix types:

Creating custom specializations

It is possible to specialize the ColumnTrait 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 ColumnTrait< DynamicMatrix<T1,SO> >
{
typedef DynamicVector<T1,true> Type;
};


Examples

The following example demonstrates the use of the ColumnTrait template, where depending on the given matrix type the resulting column type is selected:

// Definition of the column type of a column-major dynamic matrix
typedef typename ColumnTrait<MatrixType1>::Type ColumnType1;
// Definition of the column type of the row-major static matrix
typedef typename ColumnTrait<MatrixType2>::Type ColumnType2;

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