Changes in libcfa/src/bits/queue.hfa [636d3715:5e82d56]
- File:
-
- 1 edited
-
libcfa/src/bits/queue.hfa (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/bits/queue.hfa
r636d3715 r5e82d56 15 15 } // post: empty() & head() == 0 | !empty() & head() in *q 16 16 17 bool empty( Queue(T) & q ) with( q ) { // 0 <=> *q contains no elements 18 return empty( (Collection &)q ); 19 } 20 21 bool listed( T * n ) { 22 return Next( (Colable *)n ) != 0; 23 } 24 25 T *& Next( T * n ) { 26 return (T *)Next( (Colable *)n ); 27 } 28 29 T * Root( Queue(T) & q ) with( q ) { 30 return (T *)root; 31 } 32 17 33 void ?{}( Queue(T) &, const Queue(T) & ) = void; // no copy 18 34 Queue(T) & ?=?( const Queue(T) & ) = void; // no assignment … … 39 55 #endif // __CFA_DEBUG__ 40 56 if ( last ) { 41 Next( n ) = head( q );57 Next( n ) = Root( q ); 42 58 q.root = n; 43 59 } else { … … 65 81 if ( root ) { 66 82 root = Next( root ); 67 if ( head( q ) == t ) {83 if ( Root( q ) == t ) { 68 84 root = last = 0p; // only one element 69 85 } … … 116 132 root = from.root; 117 133 } else { // "to" list not empty 118 Next( last ) = head( from );134 Next( last ) = Root( from ); 119 135 } 120 136 last = from.last; … … 132 148 to.last = n; // end of "to" list 133 149 from.root = Next( n ); // start of "from" list 134 if ( n == head( from ) ) { // last node in list ?150 if ( n == Root( from ) ) { // last node in list ? 135 151 from.root = from.last = 0p; // mark "from" list empty 136 152 } else { … … 148 164 149 165 inline { 166 // wrappers to make ColIter have T 167 T * Curr( QueueIter(T) & qi ) with( qi ) { 168 return (T *)curr; 169 } 170 150 171 void ?{}( QueueIter(T) & qi ) with( qi ) { 151 172 ((ColIter &)qi){}; … … 166 187 } // post: curr = {e in q} 167 188 168 bool ?>>?( QueueIter(T) & qi, T && tp ) with( qi ) {189 bool ?>>?( QueueIter(T) & qi, T *& tp ) with( qi ) { 169 190 if ( curr ) { 170 &tp = Curr( qi );191 tp = Curr( qi ); 171 192 T * n = Next( Curr( qi ) ); 172 193 curr = (n == Curr( qi ) ) ? 0p : n; 173 } else &tp = 0p;174 return &tp != 0p;194 } else tp = 0p; 195 return tp != 0p; 175 196 } 176 197 // post: elts == null & !operator>>(tp) | elts != null & *tp' in elts & elts' == elts - *tp & operator>>(tp)
Note:
See TracChangeset
for help on using the changeset viewer.