Public Types | Static Public Member Functions

upgrade_val< T1, T2 > Struct Template Reference
[Upgrade_val]

upgrade_val is used to ensure an operation such as multiplication is possible between two types. //! values are upgraded only where necessary. More...

#include <upgrade_val.hpp>

List of all members.

Public Types

typedef promote_type< T1, T2 >
::result 
T1_result
typedef promote_type< T1, T2 >
::result 
T2_result

Static Public Member Functions

static arma_inline
promote_type< T1, T2 >::result 
apply (const T1 x)
static arma_inline
promote_type< T1, T2 >::result 
apply (const T2 x)

Detailed Description

template<typename T1, typename T2>
struct upgrade_val< T1, T2 >

upgrade_val is used to ensure an operation such as multiplication is possible between two types. //! values are upgraded only where necessary.

Definition at line 26 of file upgrade_val.hpp.


Member Typedef Documentation

template<typename T1, typename T2>
typedef promote_type<T1,T2>::result upgrade_val< T1, T2 >::T1_result

Definition at line 28 of file upgrade_val.hpp.

template<typename T1, typename T2>
typedef promote_type<T1,T2>::result upgrade_val< T1, T2 >::T2_result

Definition at line 29 of file upgrade_val.hpp.


Member Function Documentation

template<typename T1, typename T2>
static arma_inline promote_type<T1,T2>::result upgrade_val< T1, T2 >::apply ( const T1  x  )  [inline, static]

Definition at line 34 of file upgrade_val.hpp.

Referenced by operator%(), operator*(), operator+(), operator-(), and operator/().

    {
    typedef typename promote_type<T1,T2>::result out_type;
    return out_type(x);
    }

template<typename T1, typename T2>
static arma_inline promote_type<T1,T2>::result upgrade_val< T1, T2 >::apply ( const T2  x  )  [inline, static]

Definition at line 43 of file upgrade_val.hpp.

    {
    typedef typename promote_type<T1,T2>::result out_type;
    return out_type(x);
    }