gem5 v24.0.0.0
Loading...
Searching...
No Matches
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

using difference_type = std::ptrdiff_t
 
using value_type = typename AccessPolicy::Type
 
using reference = typename AccessPolicy::Type &
 
using pointer = typename AccessPolicy::Type *
 
using iterator_category = std::random_access_iterator_tag
 

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 const PlainType ConstPlainType
 
typedef sc_direct_access< PlainType >::ConstPolicy ConstDirectPolicy
 
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())
 
Policy const & get_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

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 263 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 270 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 300 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 275 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 298 of file sc_vector.hh.

◆ ConstPlainType

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

Definition at line 273 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 269 of file sc_vector.hh.

◆ difference_type

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
using sc_core::sc_vector_iter< Element, AccessPolicy >::difference_type = std::ptrdiff_t

Definition at line 314 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 266 of file sc_vector.hh.

◆ iterator_category

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
using sc_core::sc_vector_iter< Element, AccessPolicy >::iterator_category = std::random_access_iterator_tag

Definition at line 318 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 268 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 272 of file sc_vector.hh.

◆ pointer

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
using sc_core::sc_vector_iter< Element, AccessPolicy >::pointer = typename AccessPolicy::Type *

Definition at line 317 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 267 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 297 of file sc_vector.hh.

◆ reference

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
using sc_core::sc_vector_iter< Element, AccessPolicy >::reference = typename AccessPolicy::Type &

Definition at line 316 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 285 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 283 of file sc_vector.hh.

◆ value_type

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
using sc_core::sc_vector_iter< Element, AccessPolicy >::value_type = typename AccessPolicy::Type

Definition at line 315 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 284 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 304 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 320 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 323 of file sc_vector.hh.

Member Function Documentation

◆ get_policy()

template<typename Element , typename AccessPolicy = sc_direct_access<Element>>
Policy const & 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 Symbol Documentation

◆ sc_vector< PlainType >

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

Definition at line 275 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 279 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 281 of file sc_vector.hh.

Member Data Documentation

◆ it_


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

Generated on Tue Jun 18 2024 16:24:55 for gem5 by doxygen 1.11.0