Tango Conference 2008 - Tomasz Stachowiak and Piotr Modzelewski gamedev

bearophile bearophileHUGS at lycos.com
Thu Nov 6 15:44:40 PST 2008


Peter Modzelewski:
> You can download the slides from:
> http://team0xf.com/conference/gamedev.pdf

The serialization example, page 21 of the slides, is interesting. The API/syntax they use doesn't look too much readable, but such functionality is probably quite useful in certain kinds of D programs. So D may enjoy a little more handy ways to manage its reflective information. Avoiding most of such serialization hack.


The following code is cleaned/improved from the OMG:
http://team0xf.com:8080/omg/file/aca17fefefc1/core/Algebra.d
But does it work? Strings turns up being "summable", but if you actually add them you get an "Array operations not implemented" error:

import std.stdio: writefln;

template isRingType(T) {
    const bool isRingType = is(typeof(T.init + T.init)) &&
                            is(typeof(T.init - T.init)) &&
                            is(typeof(T.init * T.init));
}

template isFieldType(T) {
    const bool isFieldType = isRingType!(T) && is(typeof(T.init / T.init));
}

template isSummable(T) {
    const bool isSummable = is(typeof(T.init + T.init));
}

void main() {
    writefln( isSummable!(string) );
    writefln( isRingType!(string) );
    //writefln( string.init + string.init ); // test.d(20): Error: Array operations not implemented
}

Bye,
bearophile


More information about the Digitalmars-d-announce mailing list