Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/bits/stack_example.cfa

    r5e82d56 r636d3715  
    1717        Stack(Fred) fred;
    1818        StackIter(Fred) fredIter = { fred };
    19         Fred * f;
    20         int i;
     19        Fred & f;
    2120
    2221        sout | nlOff;                                                                           // turn off auto newline
    2322
    2423        for ( ; fredIter >> f; ) {                                                      // empty list
    25                 sout | f->i | ' ';
     24                sout | f.i | ' ';
    2625        }
    2726        sout | "empty" | nl;
    2827       
    29         for ( i = 0; i < 10; i += 1 ) {
    30                 push( fred, new( 2 * i ) );
     28        for ( i; 10 ) {
     29                push( fred, *new( 2 * i ) );
     30        }
     31
     32        for ( StackIter(Fred) iter = { fred }; iter >> f; ) {
     33                sout | f.i | ' ';
     34        }
     35        sout | nl;
     36       
     37        for ( i; 9 ) {
     38                delete( &pop( fred ) );
    3139        }
    3240
    3341        for ( over( fredIter, fred ); fredIter >> f; ) {
    34                 sout | f->i | ' ';
     42                sout | f.i | ' ';
    3543        }
    3644        sout | nl;
    3745       
    38         for ( i = 0; i < 9; i += 1 ) {
    39                 delete( pop( fred ) );
    40         }
    41 
    42         for ( over( fredIter, fred ); fredIter >> f; ) {
    43                 sout | f->i | ' ';
    44         }
    45         sout | nl;
    46        
    47         for ( i = 0; i < 10; i += 1 ) {
    48                 push( fred, new( 2 * i + 1 ) );
     46        for ( i; 10 ) {
     47                push( fred, *new( 2 * i + 1 ) );
    4948        }
    5049        for ( over( fredIter, fred ); fredIter >> f; ) {
    51                 sout | f->i | ' ';
     50                sout | f.i | ' ';
    5251        }
    5352        sout | nl;
    5453
    5554        for ( over( fredIter, fred ); fredIter >> f; ) {
    56                 delete( f );
     55                delete( &f );
    5756        }
    5857
     
    7170        Stack(Mary) mary;
    7271        StackIter(Mary) maryIter = { mary };
    73         Mary * m;
     72        Mary & m;
    7473
    7574        for ( ; maryIter >> m; ) {                                                      // empty list
    76                 sout | m->i | m->j | ' ';
     75                sout | m.i | m.j | ' ';
    7776        }
    7877        sout | "empty" | nl;
    7978       
    80         for ( i = 0; i < 10; i += 1 ) {
    81                 push( mary, new( 2 * i ) );
     79        for ( i; 10 ) {
     80                push( mary, *new( 2 * i ) );
     81        }
     82
     83        for ( StackIter(Mary) iter = { mary }; iter >> m; ) {
     84                sout | m.i | m.j | ' ';
     85        }
     86        sout | nl;
     87       
     88        for ( i; 9 ) {
     89                delete( &pop( mary ) );
    8290        }
    8391
    8492        for ( over( maryIter, mary ); maryIter >> m; ) {
    85                 sout | m->i | m->j | ' ';
     93                sout | m.i | m.j | ' ';
    8694        }
    8795        sout | nl;
    8896       
    89         for ( i = 0; i < 9; i += 1 ) {
    90                 delete( pop( mary ) );
    91         }
    92 
    93         for ( over( maryIter, mary ); maryIter >> m; ) {
    94                 sout | m->i | m->j | ' ';
    95         }
    96         sout | nl;
    97        
    98         for ( i = 0; i < 10; i += 1 ) {
    99                 push( mary, new( 2 * i + 1 ) );
     97        for ( i; 10 ) {
     98                push( mary, *new( 2 * i + 1 ) );
    10099        }
    101100        for ( over( maryIter, mary ); maryIter >> m; ) {
    102                 sout | m->i | m->j | ' ';
     101                sout | m.i | m.j | ' ';
    103102        }
    104103        sout | nl;
    105104
    106105        for ( over( maryIter, mary ); maryIter >> m; ) {
    107                 delete( m );
     106                delete( &m );
    108107        }
    109108}
Note: See TracChangeset for help on using the changeset viewer.