16#ifndef ROO_LINKED_LIST_ITER 
   17#define ROO_LINKED_LIST_ITER 
   67    if (!
fPtr) 
return nullptr ;
 
 
 
   97template<
class STLContainer>
 
  175      throw std::logic_error(
"A RooCollection should not be modified while iterating. " 
  176          "Only inserting at end is acceptable.");
 
 
 
  277    if (!
_ptr) 
return nullptr ;
 
 
  290    if (iter) 
return (
_ptr != iter->
_ptr);
 
 
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
Interface for RooFIter-compatible iterators.
 
virtual ~GenericRooFIter()
 
virtual RooAbsArg * next()=0
Return next element or nullptr if at end.
 
Common abstract base class for objects that represent a value and a "shape" in RooFit.
 
Implementation of the GenericRooFIter interface for the RooLinkedList.
 
RooAbsArg * next() override
Return next element in collection.
 
RooFIterForLinkedList(const RooLinkedList *list)
 
const RooLinkedListElem * fPtr
! Next link element
 
A one-time forward iterator working on RooLinkedList or RooAbsCollection.
 
RooFIter(RooFIter &&)=default
 
RooFIter(const RooFIter &)=delete
 
RooAbsArg * next()
Return next element or nullptr if at end.
 
RooFIter & operator=(const RooFIter &)=delete
 
std::unique_ptr< GenericRooFIter > fIterImpl
 
RooFIter(std::unique_ptr< GenericRooFIter > &&itImpl)
 
RooFIter & operator=(RooFIter &&)=default
 
Link element for the RooLinkedList class.
 
Implementation of the actual iterator on RooLinkedLists.
 
RooLinkedListIterImpl & operator++()
 
bool operator!=(const RooLinkedListIterImpl &aIter) const
 
RooLinkedListIterImpl(const RooLinkedList *list, bool forward)
 
bool _forward
! Iterator direction
 
const RooLinkedList * _list
! Collection iterated over
 
const TCollection * GetCollection() const override
 
TObject * Next() override
 
bool operator!=(const TIterator &aIter) const override
Compare two iterator objects.
 
TObject * operator*() const override
Return current object or nullptr.
 
RooLinkedListIterImpl operator++(int)
 
TIterator & operator=(const TIterator &other) override
 
RooLinkedListIterImpl(const RooLinkedList *list, const RooLinkedListElem *ptr, bool forward)
 
const RooLinkedListElem * _ptr
! Next link element
 
A wrapper around TIterator derivatives.
 
RooLinkedListIter(std::shared_ptr< TIterator > iterImpl)
 
bool operator!=(const TIterator &other) const override
Compare two iterator objects.
 
const TCollection * GetCollection() const override
 
RooLinkedListIter(const RooLinkedListIter &)=delete
 
TObject * Next() override
 
TObject * operator*() const override
Return current object or nullptr.
 
RooLinkedListIter & operator=(const RooLinkedListIter &)=delete
 
RooLinkedListIter(RooLinkedListIter &&other)
 
TIterator & operator=(const TIterator &other) override
 
std::shared_ptr< TIterator > fIterImpl
 
RooLinkedListIter & operator=(RooLinkedListIter &&other)
 
Collection class for internal use, storing a collection of RooAbsArg pointers in a doubly linked list...
 
Collection abstract base class.
 
TIterator and GenericRooFIter front end with STL back end.
 
TObject * Next() override
 
bool operator!=(const TIterator &other) const override
Compare two iterator objects.
 
RooAbsArg * next() override
Return next element or nullptr if at end.
 
const RooAbsArg * fCurrentElem
!
 
TIterator & operator=(const TIterator &) override
 
TIteratorToSTLInterface(const STLContainer &container)
 
RooAbsArg * nextChecked()
 
TObject * operator*() const override
Return current object or nullptr.
 
const TCollection * GetCollection() const override
 
const STLContainer & fSTLContainer
!
 
Iterator abstract base class.
 
Mother of all ROOT objects.