I understand that An exception specification with an empty throw, as in
void MyFunction(int i) throw();
tells the compiler that the function does not throw any exceptions. But why do we need this function? If MyFunction doesn't want to throw() something, then just doesn't throw it.
What happens when MyFunction() throw() actually throws an exception?