This is a discussion on How get two classes to know about each other? within the C++ Programming forums, part of the General Programming Boards category; Originally Posted by brewbuck The trouble is just syntactic. If you write your functions out-of-line you will not encounter these ...
There really is no chance of an infinite loop beyond using insane methods involving 'goto'. (Which I'm sure would only work with SJLJ style exceptions.)
Declaring a function as 'throw()' is more than just informative; a compiler will insert a 'terminate' try/catch block. (Which is why throw specifications should generally be avoided.) An exception can not "escape" from 'what()'. (Even if 'what()' wasn't declared as 'throw()' there are generally a finite number blocks as CornedBee said.)