Go to the documentation of this file.
14 template<
typename List >
41 return l.empty() && o.
l.empty();
45 return !(
l.empty() && o.
l.empty());
53 template<
typename List >
56 typedef std::vector< typename List::Type >
Vec;
82 operator bool() {
return vec; }
95 typedef typename List::Type
Type;
139 template<
typename List,
typename Predicate >
142 typedef typename List::Type
Type;
178 template<
typename List >
181 typedef typename List::Type
Type;
198 if (
m_list.tail().empty() )
220 template<
typename List >
225 typedef typename List::Type
Type;
246 template<
typename List,
typename F >
252 return *
static_cast<F *
>(
f_space);
255 return *
static_cast<const F *
>(
f_space);
258 typedef typename F::result_type
Type;
261 return f()(
l.head() );
276 Map(
const List &_l,
const F &_f )
283 template<
typename T >
291 template<
typename T >
304 template<
typename T1,
typename T2 >
306 typedef typename T1::Type
Type;
321 if ( !t.
m_1.empty() )
330 template<
typename X >
335 template<
typename X,
typename Y >
340 template<
typename List >
343 while ( !l.empty() ) {
350 #undef foreach // Work around Qt braindamage.
352 template<
typename List,
typename F >
353 void foreach( List l, F f ) {
354 while ( !l.empty() ) {
360 template<
typename List,
template<
typename >
class F >
361 void foreach( List l, F< typename List::Type > f ) {
362 while ( !l.empty() ) {
368 template<
typename List,
typename Pred >
374 template<
typename List,
template<
typename >
class Pred >
380 template<
typename List,
typename F >
386 template<
typename List >
392 template<
typename List >
398 template<
typename List >
404 template<
typename List >
414 template<
typename List,
typename Out >
419 template<
typename List >
424 template<
typename List >
const F & f() const
Definition: list.h:254
T head() const
Definition: list.h:299
~SharedPtr()
Definition: list.h:86
Type head() const
Definition: list.h:151
void _ref()
Definition: list.h:61
T1::Type Type
Definition: list.h:306
size_t count(List l)
Definition: list.h:341
int remaining
Definition: list.h:223
Filtered(List l, Predicate p)
Definition: list.h:170
Append tail() const
Definition: list.h:319
SharedPtr(bool a=false)
Definition: list.h:67
void sort() const
Definition: list.h:100
T1 m_1
Definition: list.h:307
Append(T1 a, T2 b)
Definition: list.h:311
Type head() const
Definition: list.h:260
ListIterator operator++(int)
Definition: list.h:30
Singular(T i)
Definition: list.h:298
T Type
Definition: list.h:285
List l
Definition: list.h:222
Sorted(List l=List())
Definition: list.h:136
bool empty() const
Definition: list.h:300
bool operator==(const ListIterator &o) const
Definition: list.h:40
List::Type Type
Definition: list.h:181
SharedPtr & operator=(const SharedPtr &o)
Definition: list.h:75
bool empty() const
Definition: list.h:271
bool empty() const
Definition: list.h:121
Vec * operator->()
Definition: list.h:84
Type head() const
Definition: list.h:189
List m_list
Definition: list.h:96
Predicate m_pred
Definition: list.h:144
Sorted< List > sort(List l)
Definition: list.h:387
Map(const List &_l, const F &_f)
Definition: list.h:276
Filtered tail() const
Definition: list.h:162
List::Type operator*()
Definition: list.h:36
Singular< X > singular(const X &x)
Definition: list.h:331
bool empty() const
Definition: list.h:146
Take()
Definition: list.h:243
List m_list
Definition: list.h:182
Map tail() const
Definition: list.h:264
Type head() const
Definition: list.h:227
Append< X, Y > append(const X &x, const Y &y)
Definition: list.h:336
SharedVec * vec
Definition: list.h:66
char f_space[sizeof(F)]
Definition: list.h:250
T2 m_2
Definition: list.h:308
std::forward_iterator_tag iterator_category
Definition: list.h:17
void _deref()
Definition: list.h:62
SharedPtr(const SharedPtr &o)
Definition: list.h:69
List drop(int t, List l)
Definition: list.h:405
Filtered()
Definition: list.h:175
Empty tail() const
Definition: list.h:288
Type head() const
Definition: list.h:109
Vec vec
Definition: list.h:59
size_t m_pos
Definition: list.h:98
Vec & operator*()
Definition: list.h:83
T m_value
Definition: list.h:294
T head() const
Definition: list.h:286
bool operator!=(const ListIterator &o) const
Definition: list.h:44
void output(List l, Out it)
Definition: list.h:415
Take(List _l, int m)
Definition: list.h:242
std::vector< typename List::Type > Vec
Definition: list.h:56
ListIterator< List > end(List)
Definition: list.h:425
value_type & reference
Definition: list.h:21
Map< List, F > map(const List &l, const F &f)
Definition: list.h:381
T Type
Definition: list.h:293
bool empty() const
Definition: list.h:287
void seek() const
Definition: list.h:194
Type head() const
Definition: list.h:312
SharedVec()
Definition: list.h:60
List m_list
Definition: list.h:143
List l
Definition: list.h:23
Unique< List > unique(List l)
Definition: list.h:393
List::Type value_type
Definition: list.h:18
Filtered< List, Pred > filter(List l, Pred p)
Definition: list.h:369
List::Type Type
Definition: list.h:225
ListIterator(List _l=List())
Definition: list.h:48
Map()
Definition: list.h:275
value_type & pointer
Definition: list.h:20
Sorted tail() const
Definition: list.h:114
Singular tail() const
Definition: list.h:301
List l
Definition: list.h:248
bool empty() const
Definition: list.h:231
SharedPtr m_sorted
Definition: list.h:97
ListIterator< List > begin(List l)
Definition: list.h:420
Take< List > take(int t, List l)
Definition: list.h:399
int refs
Definition: list.h:58
ptrdiff_t difference_type
Definition: list.h:19
List::Type Type
Definition: list.h:142
Sorted & operator=(const Sorted &o)
Definition: list.h:129
Sorted(const Sorted &o)
Definition: list.h:126
bool m_empty
Definition: list.h:295
Append()
Definition: list.h:310
F & f()
Definition: list.h:251
Singular()
Definition: list.h:297
ListIterator & operator++()
Definition: list.h:25
F::result_type Type
Definition: list.h:258
Unique tail() const
Definition: list.h:206
bool empty() const
Definition: list.h:184
Take tail() const
Definition: list.h:235
void seek() const
Definition: list.h:156
bool empty() const
Definition: list.h:318
Unique(List l=List())
Definition: list.h:214
List::Type Type
Definition: list.h:95