The Final(ize) Challenge
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Mon May 18 09:12:40 PDT 2009
Ok, now with the advent (or rediscovery) of allMembers which I had no
idea existed, we're ready to start some serious butt-kick reflection
facilities.
For starters, I'd like to present you with the following challenge.
Given any class C, e.g.:
class C
{
void foo(int) { ... }
int bar(string) { ... }
}
define a template class Finalize(T) such that Finalize!(C) is the same
as the following hand-written class:
final class FinalizeC : C
{
final void foo(int a) { return super.foo(a); }
final int bar(string a) { return super.bar(a); }
}
Finalize is cool when you need some functionality from an exact class
and you don't want to pay indirect calls throughout. All calls through
Finalize!(C)'s methods will resolve to static calls.
Have at it!
Andrei
More information about the Digitalmars-d
mailing list