On Friday, 17 February 2012 at 03:24:50 UTC, Jonathan M Davis
wrote:
No. Absolutely not. I hate the fact that C++ does this with
virtual. It makes
it so that you have to constantly look at the base classes to
figure out what's
virtual and what isn't. It harms maintenance and code
understandability. And
now you want to do that with @safe, pure, nothrow, and const?
Yuck.
I can understand wanting to save some typing, but I really
think that this
harms code maintainability. It's the sort of thing that an IDE
is good for. It
does stuff like generate the function signatures for you or
fill in the
attributes that are required but are missing. I grant you that
many D
developers don't use IDEs at this point (at least not for D)
and that those
sort of capabilities are likely to be in their infancy for the
IDEs that we
_do_ have, but I really think that this is the sort of thing
that should be
left up to the IDE. Inferring attribtutes like that is just
going to harm code
maintainibility. It's bad enough that we end up with them not
being marked on
templates due to inferrence, but we _have_ to do it that way,
because the
attributes vary per instantiation. That is _not_ the case with
class member
functions.
Please, do _not_ do this.
- Jonathan M Davis
As much as i hate the "pure const system trusted" spam, I don't
think i like the idea either. If you are not using an IDE or a
mouse, this would be hell. A language shouldn't be designed with
such assumptions, unless you are Microsoft.
Thing is, this will make things harder not easier. (which i think
is the intention here) When you overload a function, at most you
copy/paste it from base class.