On Fri, 27 Nov 2009 22:58:00 -0500, retard <r...@tard.com.invalid> wrote:

Fri, 27 Nov 2009 15:32:21 -0800, Walter Bright wrote:

Making them not virtual would also make them not overridable, they'd all
be implicitly final.

Is there any compelling use case for virtual operator overloads? Keep in
mind that any non-virtual function can still be a wrapper for another
virtual method, so it is still possible (with a bit of extra work) for a
class to have virtual operator overloads. It just wouldn't be the
default.

Is this again one of those features that is supposed to hide the fact
that dmd & optlink toolchain sucks? At least gcc can optimize the calls
in most cases where the operator is defined to be virtual, but is used in
non-polymorphic manner.

Yes and no. Yes, DMD doesn't have link time optimization (LTO), which is what enables this. No, because LTO can't do this optimization in many cases, such as creating/using a DLL/shared object. (Static libraries might also have some issues, but I'm not sure.)

Reply via email to