News for hackers. Stuff that matters.
Re:Pascal at Apple by WalterBright on Sunday July 23, 2017 @08:04PM (#14835047)
I've done that, too. It's clumsy and only does half the job (doesn't provide access to locals). At some point one just gets tired of the workarounds :-)
Re:Pascal at Apple by anthay on Tuesday July 25, 2017 @08:53AM (#14847298)
It's probably a bit late for this reply, but... Another clumsy workaround is to use operator(). Again, standard C++ and this one has access to local variables:

    int g()
    {
        int x, y;

        struct local {
            int & a_;
            int & b_;
            local(int & a, int & b) : a_(a), b_(b) {}
        
            int operator()()
            {
                return a_ + b_;
            }

        } nested(x, y);

        x = 99; y = 1;
        return nested();
    }

    assert(g() == 100);