On Tuesday, June 04, 2013 00:25:39 Walter Bright wrote: > On 6/3/2013 10:58 PM, Andrei Alexandrescu wrote: > > Unless fresh arguments, facts, or perspectives come about, I am personally > > not convinced, based on this thread so far, that we should operate a > > language change. > One possibility is to introduce virtual as a storage class that overrides > final. Hence, one could write a class like: > > class C { > final: > void foo(); > void baz(); > virtual int abc(); > void def(); > } > > This would not break any existing code, and Manu would just need to get into > the habit of having "final:" as the first line in his classes.
That would be good regardless of whether virtual or non-virtual is the default. In general, the function attributes other than access level specifiers and @safety attributes suffer from not being able to be undone once you use them with a colon or {}. - Jonathan M Davis