12 #ifndef WIBBLE_CONSUMER_H 13 #define WIBBLE_CONSUMER_H 19 template<
typename T >
23 virtual void consume(
const T &a ) = 0;
28 template<
typename T,
typename W >
35 return this->wrapped().consume( a );
39 while ( !s.
empty() ) {
46 template<
typename T,
typename Self >
49 Self &
self() {
return *
static_cast< Self *
>( this ); }
50 const Self &
self()
const {
return *
static_cast< const Self *
>( this ); }
54 bool operator<=(
const Self &o )
const {
return this <= &o; }
64 template<
typename T >
79 return this->implementation()->consume( a );
89 template<
typename T,
typename Out >
101 template<
typename R >
107 template<
typename Out >
114 template<
typename T >
116 return consumer( std::inserter( c, c.end() ) );
120 template<
typename T >
Iterator< typename I::value_type > iterator(I i)
Definition: iterator.h:123
void reference
Definition: consumer.h:73
ConsumerMorph(const W &w)
Definition: consumer.h:32
T InputType
Definition: consumer.h:22
void consume(const T &a)
Definition: consumer.h:78
Definition: consumer.h:90
Consumer< T > & operator=(const T &a)
Definition: consumer.h:82
Consumer< typename R::ConsumedType > consumerMorph(R r)
Definition: consumer.h:102
std::output_iterator_tag iterator_category
Definition: consumer.h:51
Consumer< typename Out::container_type::value_type > consumer(Out out)
Definition: consumer.h:108
void consume(const T &a)
Definition: consumer.h:93
void difference_type
Definition: consumer.h:71
bool operator<=(const Self &o) const
Definition: consumer.h:54
Definition: consumer.h:20
Consumer(const MorphInterface< ConsumerInterface< T > > &i)
Definition: consumer.h:75
ConsumerFromIterator(Out out)
Definition: consumer.h:92
Consumer()
Definition: consumer.h:76
virtual void consume(const T &a)=0
An interface implemented by all morph classes.
Definition: amorph.h:91
virtual void consume(const T &a)
Definition: consumer.h:34
void value_type
Definition: consumer.h:70
Consumer< T > & operator*()
Definition: consumer.h:57
T head() const
Definition: range.h:163
ConsumerMorph()
Definition: consumer.h:31
Definition: consumer.h:29
void pointer
Definition: consumer.h:72
Amorph< Consumer< T >, ConsumerInterface< T > > Super
Definition: consumer.h:68
virtual void consume(Range< T > s)
Definition: consumer.h:38
Consumer< T > & operator=(const T &a)
Definition: consumer.h:58
T ConsumedType
Definition: consumer.h:52
Consumer< T > & operator++()
Definition: consumer.h:55
bool empty() const
Definition: range.h:82
Out m_out
Definition: consumer.h:98
Definition: consumer.h:17
virtual ~ConsumerInterface()
Definition: consumer.h:25
Definition: consumer.h:47
Consumer< T > & operator++(int)
Definition: consumer.h:56
Range< T > tail() const
Definition: range.h:75