
On Sun, Jan 13, 2013 at 8:30 PM, Vicente J. Botet Escriba < vicente.botet@wanadoo.fr> wrote:
Exiting from nested loops is something that could be quite complex using structured programming.
Named blocks try to make more structured a goto based solution, by allowing only to restart/leave a block from inside it.
BOOST_NAMED_BLOCK(L) for(;;) { while (cnd) {
if (cnd2) BOOST_BREAK(L); // go to [1] } } // [1]
Of course in order to be really structired the jumping to the underlying label should be forbiden (by the compiler), but I don't think that a preprocessor solution could take care of this. So the following not desired and not structured code could compile even if we would like an compile error.
Ok but then what's the difference with goto and a label? Doesn't it already work like that in C++? Sorry if it should be obvious... Joel Lamotte