Ejemplo n.º 1
0
 typename IteratorAdaptorT::reference 
 dereference(const IteratorAdaptorT &x) const
 { 
     if (x.policies().unput_queue.size() > 0)
         return x.policies().unput_queue.front();
     return *x.base(); 
 }
Ejemplo n.º 2
0
 void 
 increment(IteratorAdaptorT &x)
 { 
     if (x.policies().unput_queue.size() > 0) {
     // there exist pending tokens in the unput queue
         x.policies().unput_queue.pop_front();
     }
     else {
     // the unput_queue is empty, so advance the base iterator
         ++x.base(); 
     }
 }
 typename IteratorAdaptorT::reference
 dereference(const IteratorAdaptorT &iter) const
 { return m_f(*iter.base()); }