digitalmars.D.learn - inout problems
- Andrej Mitrovic (10/10) Feb 21 2012 class Foo
- deadalnix (3/13) Feb 22 2012 inout is supposed to propagate a parameter qualifier to the return type....
- Timon Gehr (4/21) Feb 22 2012 It is not useless, inout constructors are supposed to work and already
- Timon Gehr (2/12) Feb 22 2012 Yes. See http://d.puremagic.com/issues/show_bug.cgi?id=7053
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?
Feb 21 2012
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.
Feb 22 2012
On 02/22/2012 01:22 PM, deadalnix wrote:Le 22/02/2012 05:01, Andrej Mitrovic a écrit :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.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.
Feb 22 2012
On 02/22/2012 05:01 AM, Andrej Mitrovic wrote: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?Yes. See http://d.puremagic.com/issues/show_bug.cgi?id=7053
Feb 22 2012