6 #ifndef CMR_LIST_INCLUDED
7 #define CMR_LIST_INCLUDED
56 *
this =
cont().erase(*
this);
92 *
this =
cont().insert(i, v);
103 *
this =
cont().insert(i);
413 return merge(original, A::compare);
473 bool find(
const T& value)
const
482 bool find(
bool (*pred)(
const T&))
const
508 bool operator< (const List<T, A>& l)
const
641 #define cmr_foreach(T, V, L) \
642 if (bool continue__ = true) \
643 for (commore::List<T>::iterator i__ = L.begin(); continue__ && i__; i__++) \
644 if (bool b__ = true) if (__trueset(continue__, false)) \
645 for (T& V = *i__;b__; b__ = false,continue__ = true)
651 #define cmr_const_foreach(T, V, L) \
652 if (bool continue__ = true) \
653 for (commore::List<T>::const_iterator i__ = L.begin(); continue__ && i__; i__++) \
654 if (bool b__ = true) if (__trueset(continue__, false)) \
655 for (const T& V = *i__;b__; b__ = false,continue__ = true)
663 #define cmr_foreach_enum(T, V, L, I) \
664 if (bool continue__ = true) \
665 if (int I = 1) if (I--)\
666 for (commore::List<T>::iterator i__ = L.begin(); continue__ && i__; i__++, I++) \
667 if (bool b__ = true) if (__trueset(continue__, false))\
668 for (T& V = *i__;b__; b__ = false,continue__ = true)
675 #define cmr_const_foreach_enum(T, V, L, I) \
676 if (bool continue__ = true) \
677 if (int I = 1) if (I--)\
678 for (commore::List<T>::const_iterator i__ = L.begin(); continue__ && i__; i__++, I++) \
679 if (bool b__ = true) if (__trueset(continue__, false))\
680 for (const T& V = *i__;b__; b__ = false,continue__ = true)
687 #define cmr_foreach_while(T, V, L, M) \
688 if (bool continue__ = true) \
689 for (commore::List<T>::iterator i__ = L.begin(); M && i__; i__++) \
690 if (bool b__ = true) if (__trueset(continue__, false)) \
691 for (T& V = *i__;b__; b__ = false,continue__ = true)
693 #define cmr_const_foreach_while(T, V, L, M) \
694 if (bool continue__ = true) \
695 for (commore::List<T>::const_iterator i__ = L.begin(); M && i__; i__++) \
696 if (bool b__ = true) if (__trueset(continue__, false)) \
697 for (const T& V = *i__;b__; b__ = false,continue__ = true)
703 #define cmr_remove_where(T, V, L, M) \
704 if (bool keep__ = true) \
705 if (bool continue__ = true) \
706 for (commore::List<T>::iterator i__ = L.begin(); continue__ && i__; keep__ ? i__++ : i__.erase()) \
707 if (bool b__ = true) if (__trueset(continue__, false)) \
708 for (T& V = *i__;b__; b__ = false,continue__ = true,(keep__ = !(M)))\
714 #define cmr_move_where(T, V, S, D, M) \
715 if (bool keep__ = true) \
716 if (bool continue__ = true) \
717 for (commore::List<T>::iterator i__ = S.begin(); continue__ && i__; keep__ ? i__++ : D.move_before(D.end(), i__++)) \
718 if (bool b__ = true) if (__trueset(continue__, false)) \
719 for (T& V = *i__;b__; b__ = false,continue__ = true,(keep__ = !(M)))\
~List()
Definition: List.h:140
List(const List< T, A > &original)
Definition: List.h:132
void pop_front()
Definition: List.h:294
iterator insert(size_t pos)
Definition: List.h:261
const T & front() const
Definition: List.h:207
const_iterator cbegin() const
Definition: List.h:182
BaseList & merge(BaseList &original, FunctionComparator cmor)
Definition: BaseList.cpp:465
static void transfer(iterator pos, iterator first, iterator last)
Definition: List.h:623
Definition: BaseList.h:21
void assign(const_iterator first, const_iterator last, FunctionConstructor c, FunctionDestructor d, size_t size)
Definition: BaseList.cpp:828
const_iterator get_at(size_t i) const
Definition: List.h:455
iterator erase(iterator pos, FunctionDestructor d)
Definition: BaseList.cpp:718
iterator insert(size_t pos, const T &value)
Definition: List.h:252
T & front()
Definition: List.h:198
void clear()
Definition: List.h:562
List< T, A > & unique(int(*pred)(const T &, const T &))
Definition: List.h:402
static void transfer(iterator pos, iterator first, iterator last)
Definition: BaseList.cpp:386
Byte * push_back_once(size_t size, FunctionConstructor ctor, FunctionComparator cmor, const Byte *value)
Definition: BaseList.cpp:772
const T & operator*()
Definition: List.h:124
const Byte * get_data() const
Definition: BaseList.cpp:643
T & push_back_once(const T &value)
Definition: List.h:311
iterator erase(iterator pos)
Definition: List.h:348
List< T, A > & swap(List< T, A > &original)
Definition: List.h:536
List< T, A > & merge(List< T, A > &original)
Definition: List.h:411
int(* FunctionComparator)(const Dummy &, const Dummy &)
Definition: Allocator.h:89
int compare(const List< T, A > &l) const
Definition: List.h:494
iterator(const BaseList::iterator &i)
Definition: List.h:34
iterator erase(iterator first, iterator last)
Definition: List.h:358
List< T, A > & cont()
Definition: List.h:46
List< T, A > & sort()
Definition: List.h:429
iterator & erase()
Definition: List.h:54
CMREXD int write(const Path &file) const
void insert(iterator pos, const_iterator first, const_iterator last)
Definition: List.h:271
#define CMREXD
Definition: Compiler.h:22
T & back()
Definition: List.h:215
List()
Definition: List.h:131
BaseList & unique(FunctionComparator cmor, FunctionDestructor d)
Definition: BaseList.cpp:561
bool __trueset(bool &b, bool v)
Definition: List.h:631
List< T, A > & unique()
Definition: List.h:393
iterator get_at(size_t i)
Definition: List.h:464
iterator insert(iterator pos)
Definition: List.h:242
Byte * get_data() const
Definition: BaseList.cpp:102
const_iterator cend() const
Definition: List.h:190
List< T, A > & splice(List< T, A > &original)
Definition: List.h:545
bool find(const T &value) const
Definition: List.h:473
CMREXD int read(const Path &file)
T & operator*()
Definition: List.h:39
void pop_back()
Definition: List.h:301
bool operator>(const List< T, A > &l) const
Definition: List.h:515
const_iterator(const super &i)
Definition: List.h:116
iterator end()
Definition: BaseList.cpp:158
T & insert()
Definition: List.h:75
iterator insert(iterator pos, const T &value)
Definition: List.h:233
BaseList & remove(const Byte *v, FunctionComparator cmor, FunctionDestructor d)
Definition: BaseList.cpp:398
CMREXD long from_xml_string(const AString &s)
Definition: Tuple.cpp:766
List< T, A > & remove_if(bool(*pred)(const T &))
Definition: List.h:385
bool operator==(const List< T, A > &l) const
Definition: List.h:501
const_iterator begin() const
Definition: List.h:167
CMREXD AString & to_xml_string(AString &s) const
Definition: Tuple.cpp:754
BaseList & swap(BaseList &original)
Definition: BaseList.cpp:322
T & add()
Definition: List.h:99
T value_type
Definition: List.h:146
Definition: BaseList.h:92
T & add()
Definition: List.h:319
iterator begin()
Definition: List.h:153
iterator get_at(size_t i)
Definition: BaseList.cpp:256
List< T, A > & sort(int(*comp)(const T &, const T &))
Definition: List.h:438
int compare(const BaseList &l, FunctionComparator cmor) const
Definition: BaseList.cpp:810
List< T, A > & assign(const_iterator first, const_iterator last)
Definition: List.h:526
List< T, A > & merge(List< T, A > &original, int(*comp)(const T &, const T &))
Definition: List.h:421
BaseList & cont()
Definition: BaseList.cpp:42
T & add(const T &value)
Definition: List.h:330
List< T, A > & operator=(const List< T, A > &l)
Definition: List.h:136
List< T, A > & reverse()
Definition: List.h:446
iterator & insert(const T &v)
Definition: List.h:64
bool remove_at(size_t i)
Definition: List.h:339
unsigned char Byte
Definition: Type.h:64
bool find(const Byte *value, FunctionComparator cmor) const
Definition: BaseList.cpp:799
iterator end()
Definition: List.h:160
Definition: IOBStream.h:166
BaseList & sort(FunctionComparator cmor)
Definition: BaseList.cpp:524
void push_back(const T &value)
Definition: List.h:279
const_iterator end() const
Definition: List.h:174
iterator begin()
Definition: BaseList.cpp:145
void push_front(const T &value)
Definition: List.h:287
List< T, A > & splice(iterator pos, List< T, A > &original)
Definition: List.h:555
Definition: IOBStream.h:29
CMREXD long write_xml(OBStream &o) const
Definition: Tuple.cpp:739
bool find(bool(*pred)(const T &)) const
Definition: List.h:482
Definition: BaseList.h:30
BaseList & splice(iterator pos, BaseList &original)
Definition: BaseList.cpp:333
bool remove_at(size_t i, FunctionDestructor d)
Definition: BaseList.cpp:284
const T & back() const
Definition: List.h:223
void clear(FunctionDestructor d)
Definition: BaseList.cpp:712
bool(* FunctionFilter)(const Long &)
Definition: Allocator.h:91
BaseList & reverse()
Definition: BaseList.cpp:509
iterator & add(const T &v)
Definition: List.h:88
iterator insert(iterator pos, size_t size, FunctionConstructor c, const Byte *value=0)
Definition: BaseList.cpp:192
CMREXD long read_xml(IBStream &i)
Definition: TupleReadXml.cpp:184