Throwing a double from a function which allows doubles! Double successfully caught! Throwing an int from a function which only allows doubles! std::unexpected called: throwing a double Double successfully caught! Throwing an int from a function which only allows doubles! std::unexpected called: throwing an int! std::terminate called, as expected exit 0