cml::et::ExprTraits< T > Struct Template Reference

The expression traits class. More...

#include <traits.h>

List of all members.

Public Types

typedef T const_reference
typedef T expr_type
typedef fixed_memory_tag memory_tag
typedef expr_leaf_tag node_tag
typedef T & reference
typedef scalar_result_tag result_tag
typedef expr_type result_type
typedef unit_size_tag size_tag
typedef T value_type

Public Member Functions

size_t cols (double) const
 Size is always 1.
value_type get (const_reference v, size_t, size_t) const
 Matrix-like access, just returns the value.
value_type get (const_reference v, size_t) const
 Vector-like access, just returns the value.
size_t rows (double) const
 Size is always 1.
size_t size (const_reference) const
 Size is always 1.


Detailed Description

template<typename T>
struct cml::et::ExprTraits< T >

The expression traits class.

The traits class is used to provide uniform access to expression objects, including scalars, when used in vector and matrix expressions. One especially useful property for scalars is that scalars are implicitly "promoted" to vectors or scalars as necessary via the ExprTraits's get() method. Without this functionality, a separate expression tree node would be needed to hold a scalar, which would adversely affect performance.

Definition at line 43 of file traits.h.


Member Typedef Documentation

template<typename T>
typedef T cml::et::ExprTraits< T >::const_reference

Definition at line 52 of file traits.h.

template<typename T>
typedef T cml::et::ExprTraits< T >::expr_type

Definition at line 49 of file traits.h.

template<typename T>
typedef fixed_memory_tag cml::et::ExprTraits< T >::memory_tag

Definition at line 54 of file traits.h.

template<typename T>
typedef expr_leaf_tag cml::et::ExprTraits< T >::node_tag

Definition at line 57 of file traits.h.

template<typename T>
typedef T& cml::et::ExprTraits< T >::reference

Definition at line 51 of file traits.h.

template<typename T>
typedef scalar_result_tag cml::et::ExprTraits< T >::result_tag

Definition at line 53 of file traits.h.

template<typename T>
typedef expr_type cml::et::ExprTraits< T >::result_type

Definition at line 56 of file traits.h.

template<typename T>
typedef unit_size_tag cml::et::ExprTraits< T >::size_tag

Definition at line 55 of file traits.h.

template<typename T>
typedef T cml::et::ExprTraits< T >::value_type

Definition at line 50 of file traits.h.


Member Function Documentation

template<typename T>
size_t cml::et::ExprTraits< T >::cols ( double   )  const [inline]

Size is always 1.

Definition at line 72 of file traits.h.

template<typename T>
value_type cml::et::ExprTraits< T >::get ( const_reference  v,
size_t  ,
size_t   
) const [inline]

Matrix-like access, just returns the value.

Definition at line 63 of file traits.h.

template<typename T>
value_type cml::et::ExprTraits< T >::get ( const_reference  v,
size_t   
) const [inline]

Vector-like access, just returns the value.

Definition at line 60 of file traits.h.

template<typename T>
size_t cml::et::ExprTraits< T >::rows ( double   )  const [inline]

Size is always 1.

Definition at line 69 of file traits.h.

template<typename T>
size_t cml::et::ExprTraits< T >::size ( const_reference   )  const [inline]

Size is always 1.

Definition at line 66 of file traits.h.


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

Generated on Sat Jul 18 19:35:39 2009 for CML 1.0 by  doxygen 1.5.9