On 30-Jul-12 00:11, Dmitry Olshansky wrote:
I've found something far more evil:@property bool convertsTo(T)() const { TypeInfo info = typeid(T); return fptr(OpID.testConversion, null, &info) == 0; } Okay... now let me pull off another piece of rag: private VariantN opArithmetic(T, string op)(T other) { VariantN result; static if (is(T == VariantN)) { /*if (convertsTo!(uint) && other.convertsTo!(uint)) result = mixin("get!(uint) " ~ op ~ " other.get!(uint)"); else*/ if (convertsTo!(int) && other.convertsTo!(int)) result = mixin("get!(int) " ~ op ~ " other.get!(int)");
... Apparently I'm spot on. Just commenting one extra branch of this horror movie gives interesting change: 2779us 2667us 3153762us After: 2319us 2523us 288581us Aye, 10x :o) -- Dmitry Olshansky
