On 04/23/2013 10:16 AM, Dicebot wrote:
On Wednesday, 10 April 2013 at 07:39:25 UTC, Zach the Mystic wrote:
...

Kind of. I am thinking that scope is best when transitive for
aggregation but not for indirection:

struct S { int a; int *b; }

void foo(scope S s)
{
     static int *x1 = &(s.a); // error
     static int *x2 = s.b; // fine
}

(Both of these are in error because static variables are initialized at compile time, but I get what you mean.)

Why would 'scope' have any effect on the validity of the first? s.a belongs to the callee exclusively. Adding modular annotations to prevent taking its address has no point.

Reply via email to