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.