Ignore:
Timestamp:
Dec 3, 2020, 11:56:01 AM (12 months ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
arm-eh, jacob/cs343-translation, master, new-ast-unique-expr
Children:
89c982c, a78c3ff, cc5cc27
Parents:
1db306a
Message:

more code sharing in containers

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/bits/collection.hfa

    r1db306a r636d3715  
    1313        // return true iff *this is an element of a collection
    1414        bool listed( Colable & co ) with( co ) {                        // pre: this != 0
    15                 return next != 0;
     15                return next != 0p;
    1616        }
    1717
     
    2323                return cp->next;
    2424        }
     25
     26        forall( dtype T ) {
     27                T *& Next( T * n ) {
     28                        return (T *)Next( (Colable *)n );
     29                }
     30
     31                bool listed( T * n ) {
     32                        return Next( (Colable *)n ) != 0p;
     33                }
     34        } // distribution
    2535} // distribution
     36
    2637
    2738struct Collection {
     
    4152                return root == 0p;
    4253        }
     54
    4355        void * head( Collection & collection ) with( collection ) {
    4456                return root;
     
    5567                curr = 0p;
    5668        } // post: elts = null
     69
     70        forall( dtype T ) {
     71                T * Curr( ColIter & ci ) with( ci ) {
     72                        return (T *)curr;
     73                }
     74        } // distribution
    5775} // distribution
Note: See TracChangeset for help on using the changeset viewer.