On Thursday, 11 May 2017 at 00:04:52 UTC, Steven Schveighoffer wrote:
I prefer the first one. The reason is simply because it doesn't require any new grammar. The override requirement is already a protection against changing base class. In this case, we have two possible outcomes:

1. The base class finally implements the method and removes future. In this case, the derived class continues to function as expected, overriding the new function.

2. The base class removes the method. In this case, the override now fails to compile. This is not as ideal, as this does not result in a version that will compile with two consecutive versions of the base. But there is a possible path for this too -- mark it as @deprecated @future :)

-Steve

Sounds reasonable. I'll submit an update to the DIP.

Reply via email to