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.

Reply via email to