Should operator overload methods be virtual?
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Tue Dec 1 10:53:37 PST 2009
Steven Schveighoffer wrote:
> On Fri, 27 Nov 2009 18:32:21 -0500, Walter Bright
> <newshound1 at digitalmars.com> 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.
>
> I use virtual operator overloads in dcollections. Such as opCat and
> opAppend.
>
> collection1 ~= collection2; // 2 different collection types, using
> interfaces instead of templates to avoid code bloat.
>
> Also, opApply should be by default virtual, since it's not a true operator.
Would you put up with a couple of forwarding functions?
Andrei
More information about the Digitalmars-d
mailing list