WhereProxy< F, B > Struct Template Reference

The only legal use of where(a,b) is in an expression like:. More...

#include <WhereProxy.h>

List of all members.

Classes

struct  WhereProxyTraits
struct  WhereProxyTraits< Cond, Scalar< T >, F1, B1 >
struct  WhereProxyTraits< Scalar< T >, Val, F1, B1 >
struct  WhereProxyTraits< Scalar< T1 >, Scalar< T2 >, F1, B1 >

Public Types

typedef BinaryNode< WhereMask,
typename CreateLeaf< F >
::Leaf_t, typename CreateLeaf
< B >::Leaf_t > 
Tree_t
typedef ExpressionTraits
< Tree_t >::Type_t 
ETrait_t
typedef ConvertWhereProxy
< ETrait_t, Tree_t >::Make_t 
MakeFromTree_t
typedef
MakeFromTree_t::Expression_t 
WhereMask_t
typedef WhereProxyTraits
< typename CreateLeaf< F >
::Leaf_t, typename CreateLeaf
< B >::Leaf_t, F, B >
::Element_t 
Element_t

Public Member Functions

 WhereProxy (const F &f, const B &b)
WhereMask_t whereMask () const
template<class Op >
OpMask< Op > opMask (const Op &op) const
const F & flag ()
const B & value ()

Public Attributes

const F & f_m
const B & b_m


Detailed Description

template<class F, class B>
struct WhereProxy< F, B >

The only legal use of where(a,b) is in an expression like:.

A = where(f,B);

Rather than have where(f,B) return an array that could be combined in an expression, we return a WhereProxy that is recognized by assignment operators.

The WhereProxy is also necessary because the elements returned by where are MaskAssign<T> objects, so a special assignment operator, OpMask<Op> must be used.


Member Typedef Documentation

template<class F, class B>
typedef BinaryNode<WhereMask, typename CreateLeaf<F>::Leaf_t, typename CreateLeaf<B>::Leaf_t> WhereProxy< F, B >::Tree_t

template<class F, class B>
typedef ExpressionTraits<Tree_t>::Type_t WhereProxy< F, B >::ETrait_t

template<class F, class B>
typedef ConvertWhereProxy<ETrait_t,Tree_t>::Make_t WhereProxy< F, B >::MakeFromTree_t

template<class F, class B>
typedef MakeFromTree_t::Expression_t WhereProxy< F, B >::WhereMask_t

template<class F, class B>
typedef WhereProxyTraits<typename CreateLeaf<F>::Leaf_t, typename CreateLeaf<B>::Leaf_t, F, B>::Element_t WhereProxy< F, B >::Element_t


Constructor & Destructor Documentation

template<class F, class B>
WhereProxy< F, B >::WhereProxy ( const F &  f,
const B &  b 
) [inline]


Member Function Documentation

template<class F, class B>
WhereMask_t WhereProxy< F, B >::whereMask (  )  const [inline]

template<class F, class B>
template<class Op >
OpMask<Op> WhereProxy< F, B >::opMask ( const Op &  op  )  const [inline]

template<class F, class B>
const F& WhereProxy< F, B >::flag (  )  [inline]

template<class F, class B>
const B& WhereProxy< F, B >::value (  )  [inline]


Member Data Documentation

template<class F, class B>
const F& WhereProxy< F, B >::f_m

template<class F, class B>
const B& WhereProxy< F, B >::b_m


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

Generated on Wed Mar 16 06:20:44 2011 for FreePOOMA by  doxygen 1.5.9