19 JGADGET_ASSERTWARN(77,
pNext_==NULL);
20 JGADGET_ASSERTWARN(78,
pPrev_==NULL);
34 struct iterator :
public std::iterator<std::bidirectional_iterator_tag, TLinkListNode, s32, TLinkListNode*, TLinkListNode&> {
48 JUT_ASSERT(196,
p_!=NULL);
95 iterator
erase(iterator, iterator);
96 iterator
erase(iterator);
108 template <
typename Predicate>
113 if (predicate(*it)) {
116 tList.
splice(tList.
end(), *
this, itPrev);
123 template <
typename Predicate>
134template <
typename T,
int I>
176 JUT_ASSERT(541,
p!=NULL);
219 JUT_ASSERT(0x24a,
p!=NULL);
225 JUT_ASSERT(0x2F1,
p!=NULL);
226 return reinterpret_cast<TLinkListNode*
>(
reinterpret_cast<char*
>(
p) - I);
229 JUT_ASSERT(0x2F6,
p!=NULL);
230 return reinterpret_cast<const TLinkListNode*
>(
reinterpret_cast<const char*
>(
p) - I);
233 JUT_ASSERT(0x2FB,
p!=NULL);
234 return reinterpret_cast<T*
>(
reinterpret_cast<char*
>(
p) + I);
237 JUT_ASSERT(0x300,
p!=NULL);
238 return reinterpret_cast<const T*
>(
reinterpret_cast<const char*
>(
p) + I);
251 JUT_ASSERT(642, !
empty());
266template <
typename T,
int I>
273 while (!this->
empty()) {
274 T* item = &this->
front();
287template <
typename T,
int I>
290 JGADGET_ASSERTWARN(934, empty());
292 JGADGET_ASSERTWARN(934, this->empty());
302 operator bool()
const {
return isEnd(); }
319template <
typename Iterator,
typename T>
325 operator bool()
const {
return isEnd(); }
339 :
TEnumerator2<typename T::iterator, typename T::value_type>(param_0.begin(), param_0.
end()) {}
343template <
typename T,
int I>
unsigned long u32
Definition types.h:12
signed long s32
Definition types.h:11
Definition linklist.cpp:6
Definition linklist.h:344
TContainerEnumerator_const(const TLinkList< T, I > *param_0)
Definition linklist.h:345
Definition linklist.h:337
TContainerEnumerator(T ¶m_0)
Definition linklist.h:338
Definition linklist.h:320
TEnumerator2(Iterator _current, Iterator _end)
Definition linklist.h:321
Iterator end
Definition linklist.h:333
bool isEnd() const
Definition linklist.h:324
T & operator*()
Definition linklist.h:326
Iterator current
Definition linklist.h:332
Definition linklist.h:297
TEnumerator(T _current, T _end)
Definition linklist.h:298
T operator*()
Definition linklist.h:303
T end
Definition linklist.h:310
bool isEnd() const
Definition linklist.h:301
T current
Definition linklist.h:309
TLinkListNode * getPrev() const
Definition linklist.h:25
TLinkListNode * pNext_
Definition linklist.h:29
~TLinkListNode()
Definition linklist.h:17
void clear_()
Definition linklist.h:26
TLinkListNode * getNext() const
Definition linklist.h:24
TLinkListNode()
Definition linklist.h:12
TLinkListNode * pPrev_
Definition linklist.h:30
Definition linklist.h:187
const_iterator & operator--()
Definition linklist.h:197
const_iterator operator++(int)
Definition linklist.h:201
const T * operator->() const
Definition linklist.h:216
friend bool operator!=(const_iterator a, const_iterator b)
Definition linklist.h:214
const_iterator(TNodeLinkList::const_iterator iter)
Definition linklist.h:188
const_iterator & operator++()
Definition linklist.h:193
const T & operator*() const
Definition linklist.h:217
friend bool operator==(const_iterator a, const_iterator b)
Definition linklist.h:211
const_iterator(iterator iter)
Definition linklist.h:190
const_iterator operator--(int)
Definition linklist.h:206
Definition linklist.h:138
friend bool operator!=(iterator a, iterator b)
Definition linklist.h:171
s32 difference_type
Definition linklist.h:180
T * operator->() const
Definition linklist.h:173
iterator operator--(int)
Definition linklist.h:163
iterator(TNodeLinkList::iterator iter)
Definition linklist.h:140
iterator & operator++()
Definition linklist.h:150
std::bidirectional_iterator_tag iterator_category
Definition linklist.h:184
iterator operator++(int)
Definition linklist.h:158
T * pointer
Definition linklist.h:182
friend bool operator==(iterator a, iterator b)
Definition linklist.h:168
iterator()
Definition linklist.h:139
iterator & operator--()
Definition linklist.h:154
T & reference
Definition linklist.h:183
T value_type
Definition linklist.h:181
iterator & operator=(const iterator &rhs)
Definition linklist.h:142
T & operator*() const
Definition linklist.h:174
Definition linklist.h:267
virtual T * Do_create()=0
TLinkList< T, I >::iterator Erase_destroy(T *param_0)
Definition linklist.h:280
virtual void Do_destroy(T *)=0
void Clear_destroy()
Definition linklist.h:272
virtual ~TLinkList_factory()=0
Definition linklist.h:288
Definition linklist.h:135
static const T * Element_toValue(const TLinkListNode *p)
Definition linklist.h:236
T & back()
Definition linklist.h:254
void Push_back(T *element)
Definition linklist.h:257
void Remove(T *element)
Definition linklist.h:261
void Push_front(T *element)
Definition linklist.h:256
TLinkList()
Definition linklist.h:136
const_iterator begin() const
Definition linklist.h:247
iterator begin()
Definition linklist.h:246
T value_type
Definition linklist.h:263
iterator Find(const T *element)
Definition linklist.h:258
static T * Element_toValue(TLinkListNode *p)
Definition linklist.h:232
iterator Insert(iterator iter, T *element)
Definition linklist.h:241
iterator Erase(T *element)
Definition linklist.h:244
void pop_front()
Definition linklist.h:255
iterator end()
Definition linklist.h:248
static TLinkListNode * Element_toNode(T *p)
Definition linklist.h:224
const_iterator end() const
Definition linklist.h:249
static const TLinkListNode * Element_toNode(const T *p)
Definition linklist.h:228
T & front()
Definition linklist.h:250
const TLinkListNode * p_
Definition linklist.h:74
const_iterator operator--(int)
Definition linklist.h:63
const TLinkListNode * operator->() const
Definition linklist.h:70
const_iterator operator++(int)
Definition linklist.h:62
friend bool operator!=(const_iterator a, iterator b)
Definition linklist.h:68
friend bool operator!=(const_iterator a, const_iterator b)
Definition linklist.h:65
const_iterator & operator--()
Definition linklist.h:61
const_iterator(const TLinkListNode *pNode)
Definition linklist.h:57
const_iterator & operator++()
Definition linklist.h:60
const_iterator(const iterator it)
Definition linklist.h:58
friend bool operator==(const_iterator a, iterator b)
Definition linklist.h:67
const TLinkListNode & operator*() const
Definition linklist.h:71
friend bool operator==(const_iterator a, const_iterator b)
Definition linklist.h:64
friend bool operator!=(iterator a, iterator b)
Definition linklist.h:44
iterator & operator--()
Definition linklist.h:40
TLinkListNode & operator*() const
Definition linklist.h:47
iterator & operator++()
Definition linklist.h:39
iterator(TLinkListNode *pNode)
Definition linklist.h:36
iterator & operator=(const iterator &other)
Definition linklist.h:37
friend bool operator==(iterator a, iterator b)
Definition linklist.h:43
TLinkListNode * operator->() const
Definition linklist.h:46
TLinkListNode * p_
Definition linklist.h:53
iterator operator--(int)
Definition linklist.h:42
iterator operator++(int)
Definition linklist.h:41
iterator()
Definition linklist.h:35
void splice(iterator, TNodeLinkList &)
Definition linklist.cpp:51
iterator Insert(iterator, TLinkListNode *)
Definition linklist.cpp:102
void clear()
Definition linklist.h:93
bool empty() const
Definition linklist.h:91
bool Confirm_iterator(const_iterator) const
Definition linklist.cpp:159
void Remove(TLinkListNode *)
Definition linklist.cpp:137
const_iterator end() const
Definition linklist.h:89
iterator Erase(TLinkListNode *)
Definition linklist.cpp:119
iterator erase(iterator, iterator)
Definition linklist.cpp:38
bool Iterator_isEnd_(const_iterator it) const
Definition linklist.h:107
bool Confirm() const
Definition linklist.cpp:141
u32 size() const
Definition linklist.h:90
iterator Find(const TLinkListNode *)
Definition linklist.cpp:98
~TNodeLinkList()
Definition linklist.cpp:21
void Remove_if(Predicate predicate, TNodeLinkList &tList)
Definition linklist.h:109
iterator end()
Definition linklist.h:88
iterator begin()
Definition linklist.h:86
iterator pop_front()
Definition linklist.h:92
void Initialize_()
Definition linklist.h:80
TLinkListNode oNode_
Definition linklist.h:131
void remove_if(Predicate predicate)
Definition linklist.h:124
TNodeLinkList()
Definition linklist.h:77
const_iterator begin() const
Definition linklist.h:87
u32 count
Definition linklist.h:130