| 
    PLCnext API Documentation 25.6.0.37
    
   | 
 
Use this class to build a single enumerator by two given enumerator, e.g. to enumerate multiple container/collections or trees. More...
#include <Enumerator.Composite.hxx>

Public Member Functions | |
| Composite (typename IEnumerator< T >::Ptr first, typename IEnumerator< T >::Ptr second) | |
| Constructs an Enumerator<T>::Composite instance. More... | |
| Composite (const Composite &arg)=delete | |
| Composite (Composite &&arg) noexcept | |
| Move constructor. More... | |
| Composite & | operator= (const Composite &arg)=delete | 
| Composite & | operator= (Composite &&arg) noexcept | 
| Move assignment operator. More... | |
| ~Composite (void) override | |
| Destructs this instance and frees all resources. | |
| bool | MoveNext (void) override | 
| Moves this enumerator to the next position. More... | |
| T | GetCurrent (void) override | 
| Gets the element at the current position. More... | |
  Public Member Functions inherited from Arp::Base::Core::IEnumerator< T > | |
| IEnumerator (void)=default | |
| Constructs an IEnumerator instance. | |
| IEnumerator (const IEnumerator &arg)=default | |
| Deleted copy constructor. | |
| IEnumerator (IEnumerator &&arg) noexcept=default | |
| Move constructor. | |
| IEnumerator & | operator= (const IEnumerator &arg)=default | 
| Deleted copy-assignment IEnumerator. | |
| IEnumerator & | operator= (IEnumerator &&arg) noexcept=default | 
| Move-assignment operator. | |
| virtual | ~IEnumerator (void)=default | 
| Destructs this instance and frees all resources. | |
| virtual bool | MoveNext (void)=0 | 
| Moves this enumerator to the next position. More... | |
| virtual T | GetCurrent (void)=0 | 
| Gets the element at the current position. More... | |
Additional Inherited Members | |
  Public Types inherited from Arp::Base::Core::IEnumerator< T > | |
| using | Ptr = std::shared_ptr< IEnumerator > | 
| The smart pointer type of this interface. | |
| using | ValueType = T | 
| Type of the enumerated values | |
Use this class to build a single enumerator by two given enumerator, e.g. to enumerate multiple container/collections or trees.
This class implements the composite design pattern for enumerators and makes it easy to traverse tree structures. Use Enumerator<T>::CreateComposite() to create an instance of this class.
      
  | 
  inline | 
Constructs an Enumerator<T>::Composite instance.
| first | The first enumerator to create the composite from. | 
| second | The second enumerator to create the composite from. | 
      
  | 
  inlinedefaultnoexcept | 
Move constructor.
| arg | The argument to move. | 
      
  | 
  inlineoverridevirtual | 
Gets the element at the current position.
Depending on the template parameter type of this interface, a reference or even const reference might be returned.
| InvalidOperationException | When GetCurrent() is called before MoveNext() or after MoveNext() has returned false once.  | 
Implements Arp::Base::Core::IEnumerator< T >.
      
  | 
  inlineoverridevirtual | 
Moves this enumerator to the next position.
false if the end of the container/collections/enumeration has reached, otherwise true.Implements Arp::Base::Core::IEnumerator< T >.
      
  | 
  inlinedefaultnoexcept | 
Move assignment operator.
| arg | The argument to move. |