Another way, multi-level breaks could be implemented would be exceptions ...

 

 

try {

    for(...)

        for(...)

            if(...)

                throw(std::break<1>());

 

 

} catch(std::break<1>()& e) {};

 

 

with catches by a templated type with number/name parameter.

 

 

Argument against it: Exceptions are for exceptional program flow. Breaks could be the standard flow.