inout problems

Timon Gehr timon.gehr at gmx.ch
Wed Feb 22 04:58:32 PST 2012


On 02/22/2012 01:22 PM, deadalnix wrote:
> Le 22/02/2012 05:01, Andrej Mitrovic a écrit :
>> class Foo
>> {
>> this(int) inout
>> { }
>>
>> Foo makeFoo() { return new Foo(1); }
>> }
>>
>> void main() { }
>>
>> test.d(8): Error: cannot implicitly convert expression (new Foo(1)) of
>> type inout(Foo) to test.Foo
>>
>> Is this a bug?
>
> inout is supposed to propagate a parameter qualifier to the return type.
> Here, inout is useless, and it isn't surprising that it doesn't work.

It is not useless, inout constructors are supposed to work and already 
work for structs. The idea is that such a constructor is able to create 
an object of arbitrary const-ness.


More information about the Digitalmars-d-learn mailing list