STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
cliext::BidirectionalIterator< _Cont_t > Class Template Reference
Inheritance diagram for cliext::BidirectionalIterator< _Cont_t >:

Public Types

typedef _Cont_t::value_type _Value_t
 
typedef BidirectionalIterator< _Cont_t > _Mytype_t
 
typedef _STLCLR Generic::IBidirectionalIterator< _Value_t_Myiter_t
 
typedef _Cont_t::node_type node_type
 
typedef bidirectional_iterator_tag iterator_category
 
typedef _Value_t value_type
 
typedef int difference_type
 
typedef value_type pointer
 
typedef value_type reference
 
typedef value_type const_reference
 
typedef ConstBidirectionalIterator< _Cont_t > _Myciter_t
 
typedef _STLCLR Generic::ContainerBidirectionalIterator< _Value_t_Mygeniter_t
 

Public Member Functions

 BidirectionalIterator (node_type^_Node)
 
 operator _Myciter_t ()
 
 BidirectionalIterator (_Mygeniter_t%_Right)
 
 operator _Mygeniter_t ()
 
virtual System::Object Clone ()
 
int get_bias ()
 
System::Object get_node ()
 
bool valid ()
 
System::Object container ()
 
void next ()
 
bool equal_to (_STLCLR Generic::IInputIterator< _Value_t >^_Right)
 
bool equal_to (_Mytype_t%_Right)
 
const_reference get_cref ()
 
reference get_ref ()
 
void prev ()
 
bool operator== (_STLCLR Generic::IInputIterator< _Value_t >^_Right)
 
bool operator== (_Mytype_t%_Right)
 
bool operator!= (_STLCLR Generic::IInputIterator< _Value_t >^_Right)
 
bool operator!= (_Mytype_t%_Right)
 

Static Public Member Functions

static const_reference operator-> (BidirectionalIterator%_Left)
 
static const_reference operator* (BidirectionalIterator%_Left)
 
static BidirectionalIterator operator++ (BidirectionalIterator%_Left)
 
static BidirectionalIterator operator-- (BidirectionalIterator%_Left)
 

Public Attributes

_STLCLR_FIELD_ACCESS __pad0__: node_type^ _Mynode
 

Member Typedef Documentation

template<typename _Cont_t >
typedef ConstBidirectionalIterator<_Cont_t> cliext::BidirectionalIterator< _Cont_t >::_Myciter_t
template<typename _Cont_t >
typedef _STLCLR Generic::ContainerBidirectionalIterator<_Value_t> cliext::BidirectionalIterator< _Cont_t >::_Mygeniter_t
template<typename _Cont_t >
typedef _STLCLR Generic::IBidirectionalIterator<_Value_t> cliext::BidirectionalIterator< _Cont_t >::_Myiter_t
template<typename _Cont_t >
typedef BidirectionalIterator<_Cont_t> cliext::BidirectionalIterator< _Cont_t >::_Mytype_t
template<typename _Cont_t >
typedef _Cont_t::value_type cliext::BidirectionalIterator< _Cont_t >::_Value_t
template<typename _Cont_t >
typedef value_type cliext::BidirectionalIterator< _Cont_t >::const_reference
template<typename _Cont_t >
typedef int cliext::BidirectionalIterator< _Cont_t >::difference_type
template<typename _Cont_t >
typedef bidirectional_iterator_tag cliext::BidirectionalIterator< _Cont_t >::iterator_category
template<typename _Cont_t >
typedef _Cont_t::node_type cliext::BidirectionalIterator< _Cont_t >::node_type
template<typename _Cont_t >
typedef value_type cliext::BidirectionalIterator< _Cont_t >::pointer
template<typename _Cont_t >
typedef value_type cliext::BidirectionalIterator< _Cont_t >::reference
template<typename _Cont_t >
typedef _Value_t cliext::BidirectionalIterator< _Cont_t >::value_type

Constructor & Destructor Documentation

template<typename _Cont_t >
cliext::BidirectionalIterator< _Cont_t >::BidirectionalIterator ( node_type _Node)
inline
556  : _Mynode(_Node)
557  { // construct from node
558  }
template<typename _Cont_t >
cliext::BidirectionalIterator< _Cont_t >::BidirectionalIterator ( _Mygeniter_t _Right)
inline
572  : _Mynode((node_type^)_Right.get_node())
573  { // construct by copying a generic iterator
574  }
_Cont_t::node_type node_type
Definition: iterator:545
const _Ty & _Right
Definition: algorithm:4087

Member Function Documentation

template<typename _Cont_t >
virtual System::Object cliext::BidirectionalIterator< _Cont_t >::Clone ( )
inlinevirtual
583  { // return a copy
584  return (gcnew BidirectionalIterator(_Mynode));
585  }
BidirectionalIterator(node_type^_Node)
Definition: iterator:555
template<typename _Cont_t >
System::Object cliext::BidirectionalIterator< _Cont_t >::container ( )
inline
603  { // return owning container
604  return (_Mynode == nullptr ? nullptr : _Mynode->container());
605  }
template<typename _Cont_t >
bool cliext::BidirectionalIterator< _Cont_t >::equal_to ( _STLCLR Generic::IInputIterator< _Value_t >^  _Right)
inline
613  { // test if *this == _Right
614  if (container() == nullptr
615  || container() != _Right->container())
616  throw gcnew System::ArgumentException();
617  return (get_bias() == _Right->get_bias()
618  && get_node() == _Right->get_node());
619  }
int get_bias()
Definition: iterator:587
System::Object get_node()
Definition: iterator:592
System::Object container()
Definition: iterator:602
const _Ty & _Right
Definition: algorithm:4087
template<typename _Cont_t >
bool cliext::BidirectionalIterator< _Cont_t >::equal_to ( _Mytype_t _Right)
inline
622  { // test if *this == _Right
623  if (container() == nullptr
624  || container() != _Right.container())
625  throw gcnew System::ArgumentException();
626  return (get_bias() == _Right.get_bias()
627  && get_node() == _Right.get_node());
628  }
int get_bias()
Definition: iterator:587
System::Object get_node()
Definition: iterator:592
System::Object container()
Definition: iterator:602
const _Ty & _Right
Definition: algorithm:4087
template<typename _Cont_t >
int cliext::BidirectionalIterator< _Cont_t >::get_bias ( )
inline
588  { // get offset from wrapped iterator
589  return (0);
590  }
template<typename _Cont_t >
const_reference cliext::BidirectionalIterator< _Cont_t >::get_cref ( )
inline
631  { // return const reference to designated element
632  return (_Mynode->_Value);
633  }
template<typename _Cont_t >
System::Object cliext::BidirectionalIterator< _Cont_t >::get_node ( )
inline
593  { // get node from wrapped iterator
594  return (_Mynode);
595  }
template<typename _Cont_t >
reference cliext::BidirectionalIterator< _Cont_t >::get_ref ( )
inline
636  { // return reference to designated element
637  return (_Mynode->_Value);
638  }
template<typename _Cont_t >
void cliext::BidirectionalIterator< _Cont_t >::next ( )
inline
608  { // increment
609  _Mynode = _Mynode->next_node();
610  }
template<typename _Cont_t >
cliext::BidirectionalIterator< _Cont_t >::operator _Myciter_t ( )
inline
563  { // convert to const iterator
564  return (_Myciter_t(_Mynode));
565  }
ConstBidirectionalIterator< _Cont_t > _Myciter_t
Definition: iterator:560
template<typename _Cont_t >
cliext::BidirectionalIterator< _Cont_t >::operator _Mygeniter_t ( )
inline
577  { // convert to generic iterator
578  return (_Mygeniter_t(_Mynode));
579  }
_STLCLR Generic::ContainerBidirectionalIterator< _Value_t > _Mygeniter_t
Definition: iterator:569
template<typename _Cont_t >
bool cliext::BidirectionalIterator< _Cont_t >::operator!= ( _STLCLR Generic::IInputIterator< _Value_t >^  _Right)
inline
684  { // test if *this != _Right
685  return (!(*this == _Right));
686  }
const _Ty & _Right
Definition: algorithm:4087
template<typename _Cont_t >
bool cliext::BidirectionalIterator< _Cont_t >::operator!= ( _Mytype_t _Right)
inline
689  { // test if *this != _Right
690  return (!(*this == _Right));
691  }
const _Ty & _Right
Definition: algorithm:4087
template<typename _Cont_t >
static const_reference cliext::BidirectionalIterator< _Cont_t >::operator* ( BidirectionalIterator< _Cont_t >%  _Left)
inlinestatic
659  { // return const reference to designated element
660  return (_Left.get_ref());
661  }
template<typename _Cont_t >
static BidirectionalIterator cliext::BidirectionalIterator< _Cont_t >::operator++ ( BidirectionalIterator< _Cont_t >%  _Left)
inlinestatic
667  { // return incremented
668  _Left.next();
669  return (_Left);
670  }
template<typename _Cont_t >
static BidirectionalIterator cliext::BidirectionalIterator< _Cont_t >::operator-- ( BidirectionalIterator< _Cont_t >%  _Left)
inlinestatic
697  { // return decremented
698  _Left.prev();
699  return (_Left);
700  }
template<typename _Cont_t >
static const_reference cliext::BidirectionalIterator< _Cont_t >::operator-> ( BidirectionalIterator< _Cont_t >%  _Left)
inlinestatic
653  { // return pointer to class object
654  return (_Left.get_ref());
655  }
template<typename _Cont_t >
bool cliext::BidirectionalIterator< _Cont_t >::operator== ( _STLCLR Generic::IInputIterator< _Value_t >^  _Right)
inline
674  { // test if *this == _Right
675  return (equal_to(_Right));
676  }
bool equal_to(_STLCLR Generic::IInputIterator< _Value_t >^_Right)
Definition: iterator:612
const _Ty & _Right
Definition: algorithm:4087
template<typename _Cont_t >
bool cliext::BidirectionalIterator< _Cont_t >::operator== ( _Mytype_t _Right)
inline
679  { // test if *this == _Right
680  return (equal_to(_Right));
681  }
bool equal_to(_STLCLR Generic::IInputIterator< _Value_t >^_Right)
Definition: iterator:612
const _Ty & _Right
Definition: algorithm:4087
template<typename _Cont_t >
void cliext::BidirectionalIterator< _Cont_t >::prev ( )
inline
641  { // decrement
642  _Mynode = _Mynode->prev_node();
643  }
template<typename _Cont_t >
bool cliext::BidirectionalIterator< _Cont_t >::valid ( )
inline
598  { // test if iterator valid
599  return (container() != nullptr);
600  }
System::Object container()
Definition: iterator:602

Member Data Documentation

template<typename _Cont_t >
_STLCLR_FIELD_ACCESS cliext::BidirectionalIterator< _Cont_t >::__pad0__

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