LAMA
lama::Expression< T1, T2, type > Class Template Reference

The template class Expression represents a mathematical expression. More...

#include <Expression.hpp>

Public Types

typedef T1 Arg1Type
typedef T2 Arg2Type
typedef Expression ExpressionType
typedef const ExpressionType ExpressionMemberType

Public Member Functions

 Expression (const Arg1Type &arg1, const Arg2Type &arg2)
 This constructor creates a Expression for the given types.
virtual ~Expression ()
 The destructor destroys this Expression.
ExpressionTypes getExpressionType () const
 getExpressionType returns the expression type of this Expression.
const Arg1TypegetArg1 () const
 getArg1() returns a reference to the first operand of this Expression.
const Arg2TypegetArg2 () const
 getArg2() returns a reference to the second operand of this Expression.

Private Attributes

const ExpressionTypes mExpressionType
Arg1Type::ExpressionMemberType mArg1
Arg2Type::ExpressionMemberType mArg2

Detailed Description

template<typename T1, typename T2, ExpressionTypes type>
class lama::Expression< T1, T2, type >

The template class Expression represents a mathematical expression.

The template class Expression represents a mathematical expression with two operands. The supported operators are defined with ExpressionTypes. The expression holds references to the two operands.

Parameters:
T1the type of the first operand of the expression
T2the type of the second operand of the expression
typethe type of the operation

An object of class expression is comparable to an abstract syntax tree for a binary expression. Operations on this object are just the constructor, the getter for the expression type and the two getters for the operands.


Member Typedef Documentation

template<typename T1, typename T2, ExpressionTypes type>
typedef T1 lama::Expression< T1, T2, type >::Arg1Type
template<typename T1, typename T2, ExpressionTypes type>
typedef T2 lama::Expression< T1, T2, type >::Arg2Type
template<typename T1, typename T2, ExpressionTypes type>
typedef const ExpressionType lama::Expression< T1, T2, type >::ExpressionMemberType
template<typename T1, typename T2, ExpressionTypes type>
typedef Expression lama::Expression< T1, T2, type >::ExpressionType

Constructor & Destructor Documentation

template<typename T1, typename T2, ExpressionTypes type>
lama::Expression< T1, T2, type >::Expression ( const Arg1Type arg1,
const Arg2Type arg2 
) [inline]

This constructor creates a Expression for the given types.

Parameters:
arg1the first operand of the expression
arg2the second operand of the expression
template<typename T1, typename T2, ExpressionTypes type>
virtual lama::Expression< T1, T2, type >::~Expression ( ) [inline, virtual]

The destructor destroys this Expression.


Member Function Documentation

template<typename T1, typename T2, ExpressionTypes type>
const Arg1Type& lama::Expression< T1, T2, type >::getArg1 ( ) const [inline]

getArg1() returns a reference to the first operand of this Expression.

Returns:
the first operand of this Expression.

References lama::Expression< T1, T2, type >::mArg1.

Referenced by lama::operator*(), lama::operator+(), lama::operator-(), lama::Vector::operator=(), and lama::Matrix::operator=().

template<typename T1, typename T2, ExpressionTypes type>
const Arg2Type& lama::Expression< T1, T2, type >::getArg2 ( ) const [inline]

getArg2() returns a reference to the second operand of this Expression.

Returns:
the second operand of this Expression.

References lama::Expression< T1, T2, type >::mArg2.

Referenced by lama::operator*(), lama::operator+(), lama::operator-(), lama::Vector::operator=(), and lama::Matrix::operator=().

template<typename T1, typename T2, ExpressionTypes type>
ExpressionTypes lama::Expression< T1, T2, type >::getExpressionType ( ) const [inline]

getExpressionType returns the expression type of this Expression.

Returns:
the type of this Expression.

References lama::Expression< T1, T2, type >::mExpressionType.


Field Documentation

template<typename T1, typename T2, ExpressionTypes type>
Arg1Type::ExpressionMemberType lama::Expression< T1, T2, type >::mArg1 [private]
template<typename T1, typename T2, ExpressionTypes type>
Arg2Type::ExpressionMemberType lama::Expression< T1, T2, type >::mArg2 [private]
template<typename T1, typename T2, ExpressionTypes type>
const ExpressionTypes lama::Expression< T1, T2, type >::mExpressionType [private]

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