https://d.puremagic.com/issues/show_bug.cgi?id=5747
--- Comment #10 from monarchdo...@gmail.com 2013-12-12 23:35:57 PST --- (In reply to comment #9) > (In reply to comment #7) > > > > Your example snippet still overflows for me for the initial use case: > > It doesn't with dmd 2.064. Are you sure you don't mean HEAD? Head is the only version for me that doesn't horribly die for me. ~/D$ ./HEAD/dmd/src/dmd -run main.d ~/D$ ./RELEASE/dmd.2.064.2/linux/bin64/dmd -run main.d --- killed by signal 11 ~/D$ ./RELEASE/dmd.2.064/linux/bin64/dmd -run main.d --- killed by signal 11 ~/D$ ./RELEASE/dmd.2.063.2/linux/bin64/dmd -run main.d --- killed by signal 11 ~/D$ ./RELEASE/dmd.2.063/linux/bin64/dmd -run main.d --- killed by signal 11 > But that's irrelevant. As I said, it is trivial to avoid recursion If "T" is anything *but* const, I really don't see how you'd do anything *other* than infinitely recurse. T opCast(T)() const if (is(Unqual!T == S)) { static if (is(T == const)) return this; else //Not const: Try harder? return cast(T)this; } > contrary to your claim that it is impossible. It *might* be possible (which is still yet to be proven), but it isn't tirivial. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------