gem5  v20.1.0.0
Classes | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
sc_core::sc_vector_iter< Element, AccessPolicy > Class Template Reference

#include <sc_vector.hh>

Inheritance diagram for sc_core::sc_vector_iter< Element, AccessPolicy >:
sc_core::sc_direct_access< Element >

Classes

struct  SelectIter
 
struct  SelectIter< const U >
 

Public Types

typedef BaseType::difference_type difference_type
 
typedef BaseType::reference reference
 
typedef BaseType::pointer pointer
 

Public Member Functions

 sc_vector_iter ()
 
template<typename It >
 sc_vector_iter (const It &it, SC_ENABLE_IF_((sc_gem5::is_more_const< ElementType, typename It::Policy::ElementType >)))
 
ThisTypeoperator++ ()
 
ThisTypeoperator-- ()
 
ThisType operator++ (int)
 
ThisType operator-- (int)
 
ThisType operator+ (difference_type n) const
 
ThisType operator- (difference_type n) const
 
ThisTypeoperator+= (difference_type n)
 
ThisTypeoperator-= (difference_type n)
 
bool operator== (const ConstDirectIterator &other) const
 
bool operator!= (const ConstDirectIterator &other) const
 
bool operator<= (const ConstDirectIterator &other) const
 
bool operator>= (const ConstDirectIterator &other) const
 
bool operator< (const ConstDirectIterator &other) const
 
bool operator> (const ConstDirectIterator &other) const
 
reference operator* () const
 
pointer operator-> () const
 
reference operator[] (difference_type n) const
 
difference_type operator- (ConstDirectIterator const &other) const
 

Private Types

typedef Element ElementType
 
typedef AccessPolicy::Policy Policy
 
typedef AccessPolicy::NonConstPolicy NonConstPolicy
 
typedef AccessPolicy::ConstPolicy ConstPolicy
 
typedef Policy::Type AccessType
 
typedef sc_gem5::remove_const< ElementType >::type PlainType
 
typedef sc_direct_access< PlainType >::ConstPolicy ConstDirectPolicy
 
typedef std::iterator< std::random_access_iterator_tag, AccessTypeBaseType
 
typedef sc_vector_iter ThisType
 
typedef sc_vector< PlainTypeVectorType
 
typedef std::vector< void * > StorageType
 
typedef SelectIter< ElementType >::type RawIterator
 
typedef sc_vector_iter< ConstPlainType, ConstPolicyConstIterator
 
typedef sc_vector_iter< ConstPlainType, ConstDirectPolicyConstDirectIterator
 
- Private Types inherited from sc_core::sc_direct_access< Element >
typedef Element ElementType
 
typedef ElementType Type
 
typedef sc_gem5::remove_const< ElementType >::type PlainType
 
typedef sc_direct_access< ElementTypePolicy
 
typedef sc_direct_access< PlainTypeNonConstPolicy
 
typedef sc_direct_access< const PlainTypeConstPolicy
 

Private Member Functions

 sc_vector_iter (RawIterator it, Policy acc=Policy())
 
const Policyget_policy () const
 
- Private Member Functions inherited from sc_core::sc_direct_access< Element >
 sc_direct_access ()
 
 sc_direct_access (const NonConstPolicy &)
 
template<typename U >
 sc_direct_access (const U &, SC_ENABLE_IF_((sc_gem5::is_more_const< ElementType, typename U::Policy::ElementType >)))
 
ElementTypeget (ElementType *this_) const
 

Private Attributes

const typedef PlainType ConstPlainType
 
RawIterator it_
 

Friends

class sc_vector< PlainType >
 
template<typename , typename >
class sc_vector_assembly
 
template<typename , typename >
class sc_vector_iter
 

Detailed Description

template<typename Element, typename AccessPolicy = sc_direct_access<Element>>
class sc_core::sc_vector_iter< Element, AccessPolicy >

Definition at line 262 of file sc_vector.hh.

Member Typedef Documentation

◆ AccessType

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
typedef Policy::Type sc_core::sc_vector_iter< Element, AccessPolicy >::AccessType
private

Definition at line 272 of file sc_vector.hh.

◆ BaseType

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
typedef std::iterator<std::random_access_iterator_tag, AccessType> sc_core::sc_vector_iter< Element, AccessPolicy >::BaseType
private

Definition at line 286 of file sc_vector.hh.

◆ ConstDirectIterator

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
typedef sc_vector_iter<ConstPlainType, ConstDirectPolicy> sc_core::sc_vector_iter< Element, AccessPolicy >::ConstDirectIterator
private

Definition at line 304 of file sc_vector.hh.

◆ ConstDirectPolicy

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
typedef sc_direct_access<PlainType>::ConstPolicy sc_core::sc_vector_iter< Element, AccessPolicy >::ConstDirectPolicy
private

Definition at line 277 of file sc_vector.hh.

◆ ConstIterator

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
typedef sc_vector_iter<ConstPlainType, ConstPolicy> sc_core::sc_vector_iter< Element, AccessPolicy >::ConstIterator
private

Definition at line 302 of file sc_vector.hh.

◆ ConstPolicy

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
typedef AccessPolicy::ConstPolicy sc_core::sc_vector_iter< Element, AccessPolicy >::ConstPolicy
private

Definition at line 271 of file sc_vector.hh.

◆ difference_type

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
typedef BaseType::difference_type sc_core::sc_vector_iter< Element, AccessPolicy >::difference_type

Definition at line 318 of file sc_vector.hh.

◆ ElementType

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
typedef Element sc_core::sc_vector_iter< Element, AccessPolicy >::ElementType
private

Definition at line 268 of file sc_vector.hh.

◆ NonConstPolicy

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
typedef AccessPolicy::NonConstPolicy sc_core::sc_vector_iter< Element, AccessPolicy >::NonConstPolicy
private

Definition at line 270 of file sc_vector.hh.

◆ PlainType

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
typedef sc_gem5::remove_const<ElementType>::type sc_core::sc_vector_iter< Element, AccessPolicy >::PlainType
private

Definition at line 274 of file sc_vector.hh.

◆ pointer

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
typedef BaseType::pointer sc_core::sc_vector_iter< Element, AccessPolicy >::pointer

Definition at line 320 of file sc_vector.hh.

◆ Policy

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
typedef AccessPolicy::Policy sc_core::sc_vector_iter< Element, AccessPolicy >::Policy
private

Definition at line 269 of file sc_vector.hh.

◆ RawIterator

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
typedef SelectIter<ElementType>::type sc_core::sc_vector_iter< Element, AccessPolicy >::RawIterator
private

Definition at line 301 of file sc_vector.hh.

◆ reference

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
typedef BaseType::reference sc_core::sc_vector_iter< Element, AccessPolicy >::reference

Definition at line 319 of file sc_vector.hh.

◆ StorageType

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
typedef std::vector<void *> sc_core::sc_vector_iter< Element, AccessPolicy >::StorageType
private

Definition at line 289 of file sc_vector.hh.

◆ ThisType

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
typedef sc_vector_iter sc_core::sc_vector_iter< Element, AccessPolicy >::ThisType
private

Definition at line 287 of file sc_vector.hh.

◆ VectorType

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
typedef sc_vector<PlainType> sc_core::sc_vector_iter< Element, AccessPolicy >::VectorType
private

Definition at line 288 of file sc_vector.hh.

Constructor & Destructor Documentation

◆ sc_vector_iter() [1/3]

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
sc_core::sc_vector_iter< Element, AccessPolicy >::sc_vector_iter ( RawIterator  it,
Policy  acc = Policy() 
)
inlineprivate

Definition at line 308 of file sc_vector.hh.

◆ sc_vector_iter() [2/3]

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
sc_core::sc_vector_iter< Element, AccessPolicy >::sc_vector_iter ( )
inline

Definition at line 322 of file sc_vector.hh.

◆ sc_vector_iter() [3/3]

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
template<typename It >
sc_core::sc_vector_iter< Element, AccessPolicy >::sc_vector_iter ( const It &  it,
SC_ENABLE_IF_(( sc_gem5::is_more_const< ElementType, typename It::Policy::ElementType >))   
)
inline

Definition at line 325 of file sc_vector.hh.

Member Function Documentation

◆ get_policy()

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
const Policy& sc_core::sc_vector_iter< Element, AccessPolicy >::get_policy ( ) const
inlineprivate

◆ operator!=()

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
bool sc_core::sc_vector_iter< Element, AccessPolicy >::operator!= ( const ConstDirectIterator other) const
inline

◆ operator*()

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
reference sc_core::sc_vector_iter< Element, AccessPolicy >::operator* ( ) const
inline

◆ operator+()

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
ThisType sc_core::sc_vector_iter< Element, AccessPolicy >::operator+ ( difference_type  n) const
inline

◆ operator++() [1/2]

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
ThisType& sc_core::sc_vector_iter< Element, AccessPolicy >::operator++ ( )
inline

◆ operator++() [2/2]

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
ThisType sc_core::sc_vector_iter< Element, AccessPolicy >::operator++ ( int  )
inline

◆ operator+=()

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
ThisType& sc_core::sc_vector_iter< Element, AccessPolicy >::operator+= ( difference_type  n)
inline

◆ operator-() [1/2]

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
difference_type sc_core::sc_vector_iter< Element, AccessPolicy >::operator- ( ConstDirectIterator const &  other) const
inline

◆ operator-() [2/2]

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
ThisType sc_core::sc_vector_iter< Element, AccessPolicy >::operator- ( difference_type  n) const
inline

◆ operator--() [1/2]

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
ThisType& sc_core::sc_vector_iter< Element, AccessPolicy >::operator-- ( )
inline

◆ operator--() [2/2]

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
ThisType sc_core::sc_vector_iter< Element, AccessPolicy >::operator-- ( int  )
inline

◆ operator-=()

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
ThisType& sc_core::sc_vector_iter< Element, AccessPolicy >::operator-= ( difference_type  n)
inline

◆ operator->()

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
pointer sc_core::sc_vector_iter< Element, AccessPolicy >::operator-> ( ) const
inline

◆ operator<()

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
bool sc_core::sc_vector_iter< Element, AccessPolicy >::operator< ( const ConstDirectIterator other) const
inline

◆ operator<=()

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
bool sc_core::sc_vector_iter< Element, AccessPolicy >::operator<= ( const ConstDirectIterator other) const
inline

◆ operator==()

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
bool sc_core::sc_vector_iter< Element, AccessPolicy >::operator== ( const ConstDirectIterator other) const
inline

◆ operator>()

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
bool sc_core::sc_vector_iter< Element, AccessPolicy >::operator> ( const ConstDirectIterator other) const
inline

◆ operator>=()

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
bool sc_core::sc_vector_iter< Element, AccessPolicy >::operator>= ( const ConstDirectIterator other) const
inline

◆ operator[]()

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
reference sc_core::sc_vector_iter< Element, AccessPolicy >::operator[] ( difference_type  n) const
inline

Friends And Related Function Documentation

◆ sc_vector< PlainType >

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
friend class sc_vector< PlainType >
friend

Definition at line 279 of file sc_vector.hh.

◆ sc_vector_assembly

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
template<typename , typename >
friend class sc_vector_assembly
friend

Definition at line 281 of file sc_vector.hh.

◆ sc_vector_iter

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
template<typename , typename >
friend class sc_vector_iter
friend

Definition at line 283 of file sc_vector.hh.

Member Data Documentation

◆ ConstPlainType

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
const typedef PlainType sc_core::sc_vector_iter< Element, AccessPolicy >::ConstPlainType
private

Definition at line 275 of file sc_vector.hh.

◆ it_

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
RawIterator sc_core::sc_vector_iter< Element, AccessPolicy >::it_
private

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

Generated on Wed Sep 30 2020 14:03:09 for gem5 by doxygen 1.8.17