Forbid the use of method name "init"
Jarrett Billingsley
kb3ctd2 at yahoo.com
Sat May 10 14:46:57 PDT 2008
"Frank Benoit" <keinfarbton at googlemail.com> wrote in message
news:g052dt$qt4$1 at digitalmars.com...
> "init" and other class properties are kind of shadow-keywords.
>
> class MyClass{
> void init(){
> }
> }
>
> The class is fine and can be used.
> Now someone attempts to insert this class into a container....
>
> template Templ(T){
> T t = T.init; // Compile error
> }
>
> The compiler should forbid the use of the method name "init", if the
> signature does not make any sense for an "init" property. It must be a
> static method, with a return value and no arguments.
This should extend to any semi-reserved name. The compiler used to allow
redefinition of 'sizeof' and 'offsetof' but checks were added to disallow
that. That mechanism should just be extended.
More information about the Digitalmars-d
mailing list