is it bug?

anonymous via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Jan 30 05:56:16 PST 2015


On Friday, 30 January 2015 at 13:39:05 UTC, BBaz wrote:
> On Friday, 30 January 2015 at 13:34:57 UTC, drug wrote:
>> On 30.01.2015 16:31, BBaz wrote:
>>> On Friday, 30 January 2015 at 12:32:05 UTC, drug wrote:
>>>
>>>>   static init()
>>>>   {
>>>>       auto instance = new typeof(this)();
>>>>       instance._cont = new Container();
>>>>       return instance;
>>>>   }
>>>
>>> have you tried
>>>
>>> ---
>>>     static typeof(this) init()
>>>     {
>>>         auto instance = new typeof(this)();
>>>         instance._cont = new Container();
>>>         return instance;
>>>     }
>>> ---
>>>
>>> ?
>>>
>>> because currently either "void" or a type is missing.
>>>
>> Type is inferred automatically.
>
> right, i've forgot that init() is a >>built-in<< property.
> But it seemsthat i'm not the only one...

I think that doesn't matter here. Still works fine if you name it 
something other than "init". I don't know if this works as 
designed, or if an "auto" return type should be required.

Besides, it's a bad idea to call a member "init", because it 
steals the name of the default initializer. It doesn't override 
the default initializer, it just takes its name. The compiler 
should not accept it, in my opinion.


More information about the Digitalmars-d-learn mailing list