Safer casts

Sean Kelly sean at invisibleduck.org
Sat May 10 10:54:31 PDT 2008


== Quote from Dee Girl (deegirl at noreply.com)'s article
> What are good examples that show Tango is a good example of designing with a new D mindset?

I'm somewhat biased since I created the module, but I'd consider tango.core.Array
to be a good example of a D-oriented mindset.  It's an array-specific algorithm
module intended to leverage the D slice syntax for range speficication.  For exmaple:

    import tango.core.Array;
    import tango.stdc.stdio;

    void main()
    {
        int[] buf = [1,6,2,5,9,2,3,2,4].dup;

        // calls Array.sort with optional predicate
        buf[0 .. 3].sort( (int x, int y) { reuturn x < y; } );
        assert( buf[0 .. 3] == [1,2,5,6]);
        buf.sort(); // full sort of buf with default predicate
        // below is equivalent to equal_range in C++
        printf( "there are %d 2s in buf\n",
                     buf[buf.lbound(2) .. buf.ubound(2)].length );
        // more fun stuff
        printf( "there are %d 5s between index 2 and 6\n",
                    buf[2 .. 6].count( 5 ) );
    }

etc. (I'm using printf for the sake of illustration, not because
I suggest you actually use it in your app)


Sean



More information about the Digitalmars-d mailing list