12 #ifndef WIBBLE_CONSUMER_H
13 #define WIBBLE_CONSUMER_H
17 template<
typename T >
struct Consumer;
19 template<
typename T >
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 >
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 >
Consumer< typename R::ConsumedType > consumerMorph(R r)
Definition: consumer.h:102
Iterator< typename I::value_type > iterator(I i)
Definition: iterator.h:123
Consumer< typename Out::container_type::value_type > consumer(Out out)
Definition: consumer.h:108
const Interface * implementation() const
Definition: amorph.h:361
Definition: consumer.h:91
ConsumerFromIterator(Out out)
Definition: consumer.h:92
void consume(const T &a)
Definition: consumer.h:93
Out m_out
Definition: consumer.h:98
Definition: consumer.h:21
T InputType
Definition: consumer.h:22
virtual void consume(Range< T > s)=0
virtual ~ConsumerInterface()
Definition: consumer.h:25
virtual void consume(const T &a)=0
Definition: consumer.h:48
bool operator<=(const Self &o) const
Definition: consumer.h:54
Consumer< T > & operator*()
Definition: consumer.h:57
Consumer< T > & operator++()
Definition: consumer.h:55
Consumer< T > & operator++(int)
Definition: consumer.h:56
Consumer< T > & operator=(const T &a)
Definition: consumer.h:58
T ConsumedType
Definition: consumer.h:52
std::output_iterator_tag iterator_category
Definition: consumer.h:51
Definition: consumer.h:30
ConsumerMorph(const W &w)
Definition: consumer.h:32
ConsumerMorph()
Definition: consumer.h:31
virtual void consume(Range< T > s)
Definition: consumer.h:38
virtual void consume(const T &a)
Definition: consumer.h:34
Definition: consumer.h:67
void value_type
Definition: consumer.h:70
Amorph< Consumer< T >, ConsumerInterface< T > > Super
Definition: consumer.h:68
Consumer< T > & operator=(const T &a)
Definition: consumer.h:82
void pointer
Definition: consumer.h:72
Consumer()
Definition: consumer.h:76
Consumer(const MorphInterface< ConsumerInterface< T > > &i)
Definition: consumer.h:75
void difference_type
Definition: consumer.h:71
void reference
Definition: consumer.h:73
void consume(const T &a)
Definition: consumer.h:78
An interface implemented by all morph classes.
Definition: amorph.h:91
const Wrapped & wrapped() const
Definition: amorph.h:181
bool empty() const
Definition: range.h:82
Self tail() const
Definition: range.h:75
T head() const
Definition: range.h:163