The C++ standard requires that the unexpected()
function is called if a function attempts to throw an exception that is not on its exception list. A short description of this from MSDN is here: http://msdn.microsoft.com/en-us/library/awbt5tew(VS.80).aspx
Most compilers do not actually support this C++ feature.