Andrei Alexandrescu Wrote: > Christopher Wright wrote: > > Andrei Alexandrescu wrote: > >> Yah, glad someone mentioned it :o). The best way is a blend - you can > >> statically dispatch on some popular/heavily-used names, then rely on a > >> hashtable lookup for dynamic stuff. > >> > >> Andrei > > > > > > You suggest: > > > > auto opDotExp(string name)(...) > > { > > static if (name == "something") > > { > > code... > > } > > else > > { > > dynamic stuff > > } > > } > > > > That isn't very clear. Why not write it this way: > > > > auto opDotExp(string name, ...) > > { > > dynamic stuff > > } > > > > auto something (...) > > { > > code... > > } > > It's a good question. opDotExp leaves more flexibility because it allows > for a host of compile-time manipulations, e.g. decide to forward to a > member etc. Also consider this (probably Nick will turn blue): > > struct Pascalize(T) > { > T m; > auto opDotExp(string name, T...)(T args) > { > return mixin("m."~tolower(name))(args); > } > } > > struct S { void foo() { ... } } > > Pascalize!S s; > s.foo(); // works > s.Foo(); // works too > s.fOo(); // yup, works again > > > Andrei
I find that funny. I can already imagine a developer that adds the equivalent of autocorrection while they type because they make trivial typos all teh timr