I know D doesn't really have RTTI yet, but I'm experimenting with
"faking" it by doing something like:

        class A {
                string prop1;
                int prop2;
                ...
                void serialize() {
                        __serialize(this);
                }
        }

        void __serialize(T)(T obj) {
                writeln(typeid(obj));
                foreach (name; __traits(derivedMembers, T)) {
                        writefln("%s = %s", name,
                                __traits(getMember,obj,name));
                }
        }

The only thing is, serialize() has to be declared in every derived
class, because T needs to be known at compile-time. Is there a way to
"automate" this? I.e., automatically insert the serialize() boilerplate
code into derived classes?

(P.S.  D just took on brand new levels of cool when I realized I could
do something like this. Imagine doing this with C++ templates...  ugh!
What a painful thought!)


T

-- 
Tech-savvy: euphemism for nerdy.

Reply via email to