12#ifndef ARCANE_ENUMERATOR_H
13#define ARCANE_ENUMERATOR_H
17#include "arcane/utils/ObjectImpl.h"
18#include "arcane/utils/AutoRef.h"
105 void reset() { m_impl->reset(); }
106 bool moveNext() {
return m_impl->moveNext(); }
107 void* current() {
return m_impl->current(); }
108 const void* current()
const {
return m_impl->current(); }
118 const EnumeratorImplBase* _impl()
const {
return m_impl.get(); }
122 AutoRefT<EnumeratorImplBase> m_impl;
147 const T& current()
const {
return *_currentPtr(); }
148 T& current() {
return *_currentPtr(); }
152 const T& operator*()
const {
return current(); }
153 T& operator*() {
return current(); }
154 const T* operator->()
const {
return _currentPtr(); }
155 T* operator->() {
return _currentPtr(); }
161 return reinterpret_cast<T*
>(_impl()->
current());
163 const T* _currentPtr()
const
165 return reinterpret_cast<const T*
>(_impl()->
current());
Classe de base d'une collection fortement typée.
EnumeratorBase()=default
Contruit un énumérateur nul.
bool operator++()
Avance l'énumérateur sur l'élément suivant.
EnumeratorBase(EnumeratorImplBase *impl)
Contruit un énumérateur associé à l'implémentation impl.
virtual const void * current() const =0
Objet courant de l'énumérateur.
virtual void * current()=0
Objet courant de l'énumérateur.
virtual bool moveNext()=0
Avance l'énumérateur sur l'élément suivant de la collection.
virtual void reset()=0
Remet à zéro l'énumérateur.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-