label: [0pt][l]{ // start of condition scope [0pt][l]condition ; // declares t if (t) { statement goto label; } [0pt][l]} // end of condition scope
struct A {
int val;
A(int i) : val(i) { }
~A() { }
operator bool() { return val != 0; }
};
int i = 1;
while (A a = i) {
// ...
i = 0;
}