www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - return ref this -dip1000

reply vit <vit vit.vit> writes:
This code doesn't compile with -dip1000:

struct Foo{
     int foo;


     ref int bar(){

         return foo;
     }
}

Error: returning `this.foo` escapes a reference to parameter 
`this`, perhaps annotate with `return`


How can be annotated this parameter with 'return ref' ?
Dec 11 2017
parent reply Eugene Wissner <belka caraus.de> writes:
On Monday, 11 December 2017 at 20:40:09 UTC, vit wrote:
 This code doesn't compile with -dip1000:

 struct Foo{
     int foo;


     ref int bar(){

         return foo;
     }
 }

 Error: returning `this.foo` escapes a reference to parameter 
 `this`, perhaps annotate with `return`


 How can be annotated this parameter with 'return ref' ?
struct Foo{ int foo; ref int bar() return { return foo; } }
Dec 11 2017
parent vit <vit vit.vit> writes:
On Monday, 11 December 2017 at 20:44:06 UTC, Eugene Wissner wrote:
 On Monday, 11 December 2017 at 20:40:09 UTC, vit wrote:
 This code doesn't compile with -dip1000:

 struct Foo{
     int foo;


     ref int bar(){

         return foo;
     }
 }

 Error: returning `this.foo` escapes a reference to parameter 
 `this`, perhaps annotate with `return`


 How can be annotated this parameter with 'return ref' ?
struct Foo{ int foo; ref int bar() return { return foo; } }
thank you.
Dec 11 2017