Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

xst_scalar Struct Template Reference

#include <xst_scalar.h>

List of all members.


Detailed Description

template<typename ValueT>
struct cttl_impl::xst_scalar< ValueT >

Implements scalar lambda primitive.

ValueT
Template parameter specifying C++ type adapted by scalar primitive or reference to type.
Warning:
This is internal CTTL header file and should not be included by user programs.

Definition at line 54 of file xst_scalar.h.

Public Types

enum  {
  const_value_, depth_ = 1, capacity_ = xst_dereference_traits< value_T, capacity_ = xst_dereference_traits< value_T,
  primitive_id_ = primitive_id_scalar
}
typedef xst_dereference_traits<
value_T, unmodified_dereferenced_T
>::value_type 
dereferenced_value_T
 Defines type of dereferenced object encapsulated by lambda primitive.
typedef xst_scalar< ValueT > left_T
 Defines type of left scalar primitive of lambda compound.
typedef xst_scalar< typename
xst_storage_adaptor< ValueT
>::reference > 
reference_T
 Defines reference type for scalar primitive.
typedef xst_scalar< ValueT > right_T
 Defines type of right scalar primitive of lambda compound.
typedef xst_non_scalar_traits<
value_T >::value_type 
unmodified_dereferenced_T
 Defines value type of compound objects.
typedef xst_storage_adaptor<
ValueT >::value_type 
value_T
 Defines C++ type of lambda primitive.

Public Member Functions

template<int LocationT>
dereferenced_value_Tdereferenced_value (xst_lambda_wrap< xst_const_scalar< LocationT > > subscript_)
 Dereferenced value of scalar lambda compound node.
left_T const & left_lambda () const
 Direct constant access to left-hand-side scalar lambda compound node.
left_Tleft_lambda ()
 Direct mutable access to left-hand-side scalar lambda compound node.
reference_T make_reference () const
 Manufactures copy of reference object for scalar primitive.
template<int LocationT>
void pop (xst_lambda_wrap< xst_const_scalar< LocationT > >)
 Pop data from scalar primitive.
template<int LocationT, typename InputValueT>
void push (xst_lambda_wrap< xst_const_scalar< LocationT > >, InputValueT const &data_)
 Push data to scalar primitive.
right_T const & right_lambda () const
 Direct constant access to right-hand-side scalar lambda compound node.
right_Tright_lambda ()
 Direct mutable access to right-hand-side scalar lambda compound node.
template<int LocationT>
size_t size (xst_lambda_wrap< xst_const_scalar< LocationT > >) const
 Get stack size of scalar primitive.
template<int LocationT>
std::stack< value_T > * stack_ptr (xst_lambda_wrap< xst_const_scalar< LocationT > >)
 Get stack pointer for scalar primitive.
template<int LocationT>
std::stack< value_T > const * stack_ptr (xst_lambda_wrap< xst_const_scalar< LocationT > >) const
 Get constant stack pointer for scalar primitive.
template<int LocationT>
value_Ttop (xst_lambda_wrap< xst_const_scalar< LocationT > >)
 Mutable access to scalar data.
template<int LocationT>
value_T const & top (xst_lambda_wrap< xst_const_scalar< LocationT > >) const
 Constant access to scalar data.
template<typename FunctorT>
void traverse_bottom_up (FunctorT &functor_) const
 Lambda compound bottom up traversal algorithm with constant access to terminal nodes.
template<typename FunctorT>
void traverse_bottom_up (FunctorT &functor_)
 Lambda compound bottom up traversal algorithm with mutable access to terminal nodes.
template<typename FunctorT>
void traverse_top_down (FunctorT &functor_) const
 Lambda compound top-down traversal algorithm with constant access to terminal nodes.
template<typename FunctorT>
void traverse_top_down (FunctorT &functor_)
 Lambda compound top-down traversal algorithm with mutable access to terminal nodes.
 xst_scalar (xst_scalar< ValueT > const &other_)
 Copy constructor.
 xst_scalar (ValueT data_)
 Constructs scalar from its value or reference to value.
 xst_scalar ()
 Default constructor.

Static Public Member Functions

template<typename FunctorT>
void subscript_bottom_up (FunctorT &functor_)
 Subscript bottom-up traversal algorithm.
template<typename FunctorT>
void subscript_top_down (FunctorT &functor_)
 Subscript top-down subscript traversal algorithm.


Member Typedef Documentation

typedef xst_dereference_traits< value_T, unmodified_dereferenced_T >::value_type dereferenced_value_T
 

Defines type of dereferenced object encapsulated by lambda primitive.

Definition at line 75 of file xst_scalar.h.

typedef xst_scalar< ValueT > left_T
 

Defines type of left scalar primitive of lambda compound.

Definition at line 78 of file xst_scalar.h.

typedef xst_scalar< typename xst_storage_adaptor< ValueT >::reference > reference_T
 

Defines reference type for scalar primitive.

Definition at line 104 of file xst_scalar.h.

typedef xst_scalar< ValueT > right_T
 

Defines type of right scalar primitive of lambda compound.

Definition at line 81 of file xst_scalar.h.

typedef xst_non_scalar_traits< value_T >::value_type unmodified_dereferenced_T
 

Defines value type of compound objects.

Remarks:
unmodified_dereferenced_T can be if encapsulated type is output iterator.

Definition at line 72 of file xst_scalar.h.

typedef xst_storage_adaptor< ValueT >::value_type value_T
 

Defines C++ type of lambda primitive.

Definition at line 63 of file xst_scalar.h.


Member Enumeration Documentation

anonymous enum
 

Enumeration values:
const_value_  Constant required to compile algorithms for subscript-based access to lambda compound.
depth_  Number of nodes inside scalar primitive.
capacity_  Capacity of scalar primitive.

Remarks:
capacity_ can be zero if encapsulated type is output iterator.
capacity_  Capacity of scalar primitive.

Remarks:
capacity_ can be zero if encapsulated type is output iterator.
primitive_id_  Unique identifier of scalar primitive.

Definition at line 83 of file xst_scalar.h.


Constructor & Destructor Documentation

xst_scalar  )  [inline]
 

Default constructor.

Definition at line 107 of file xst_scalar.h.

xst_scalar ValueT  data_  )  [inline]
 

Constructs scalar from its value or reference to value.

Definition at line 112 of file xst_scalar.h.

xst_scalar xst_scalar< ValueT > const &  other_  )  [inline]
 

Copy constructor.

Definition at line 119 of file xst_scalar.h.


Member Function Documentation

dereferenced_value_T& dereferenced_value xst_lambda_wrap< xst_const_scalar< LocationT > >  subscript_  )  [inline]
 

Dereferenced value of scalar lambda compound node.

Definition at line 136 of file xst_scalar.h.

References cttl::alias::top().

left_T const& left_lambda  )  const [inline]
 

Direct constant access to left-hand-side scalar lambda compound node.

Definition at line 153 of file xst_scalar.h.

left_T& left_lambda  )  [inline]
 

Direct mutable access to left-hand-side scalar lambda compound node.

Definition at line 147 of file xst_scalar.h.

reference_T make_reference  )  const [inline]
 

Manufactures copy of reference object for scalar primitive.

Definition at line 126 of file xst_scalar.h.

void pop xst_lambda_wrap< xst_const_scalar< LocationT > >   )  [inline]
 

Pop data from scalar primitive.

Definition at line 245 of file xst_scalar.h.

void push xst_lambda_wrap< xst_const_scalar< LocationT > >  ,
InputValueT const &  data_
[inline]
 

Push data to scalar primitive.

Definition at line 232 of file xst_scalar.h.

right_T const& right_lambda  )  const [inline]
 

Direct constant access to right-hand-side scalar lambda compound node.

Definition at line 165 of file xst_scalar.h.

right_T& right_lambda  )  [inline]
 

Direct mutable access to right-hand-side scalar lambda compound node.

Definition at line 159 of file xst_scalar.h.

size_t size xst_lambda_wrap< xst_const_scalar< LocationT > >   )  const [inline]
 

Get stack size of scalar primitive.

Definition at line 282 of file xst_scalar.h.

std::stack< value_T >* stack_ptr xst_lambda_wrap< xst_const_scalar< LocationT > >   )  [inline]
 

Get stack pointer for scalar primitive.

Definition at line 309 of file xst_scalar.h.

std::stack< value_T > const* stack_ptr xst_lambda_wrap< xst_const_scalar< LocationT > >   )  const [inline]
 

Get constant stack pointer for scalar primitive.

Definition at line 295 of file xst_scalar.h.

void subscript_bottom_up FunctorT &  functor_  )  [inline, static]
 

Subscript bottom-up traversal algorithm.

Definition at line 184 of file xst_scalar.h.

References const_scalar.

void subscript_top_down FunctorT &  functor_  )  [inline, static]
 

Subscript top-down subscript traversal algorithm.

Definition at line 177 of file xst_scalar.h.

References const_scalar.

value_T& top xst_lambda_wrap< xst_const_scalar< LocationT > >   )  [inline]
 

Mutable access to scalar data.

Definition at line 269 of file xst_scalar.h.

value_T const& top xst_lambda_wrap< xst_const_scalar< LocationT > >   )  const [inline]
 

Constant access to scalar data.

Definition at line 257 of file xst_scalar.h.

void traverse_bottom_up FunctorT &  functor_  )  const [inline]
 

Lambda compound bottom up traversal algorithm with constant access to terminal nodes.

Definition at line 209 of file xst_scalar.h.

void traverse_bottom_up FunctorT &  functor_  )  [inline]
 

Lambda compound bottom up traversal algorithm with mutable access to terminal nodes.

Definition at line 195 of file xst_scalar.h.

void traverse_top_down FunctorT &  functor_  )  const [inline]
 

Lambda compound top-down traversal algorithm with constant access to terminal nodes.

Definition at line 216 of file xst_scalar.h.

void traverse_top_down FunctorT &  functor_  )  [inline]
 

Lambda compound top-down traversal algorithm with mutable access to terminal nodes.

Definition at line 202 of file xst_scalar.h.


The documentation for this struct was generated from the following file:
Generated on Thu Nov 2 17:49:05 2006 for CTTL Lambda Expression by  doxygen 1.3.9.1