Correct Answer - Option 1 : unexpected()
std::unexpected() is called by the C++ runtime when a dynamic exception specification is violated: an exception is thrown from a function whose exception specification forbids exceptions of this type. std::unexpected() may also be called directly from the program.
The terminate() function calls the function pointed to by terminate_handler . By default, terminate_handler points to the function abort() , which exits from the program. You can replace the default value of terminate_handler with the function set_terminate()
To assign the pointer NULL to a pointer variable in case you do not have exact address to be assigned. This is done at the time of variable declaration. A pointer that is assigned NULL is called a null pointer.
Default Arguments in C++ A default argument is a value provided in a function declaration that is automatically assigned by the compiler if the caller of the function doesn't provide a value for the argument with a default value.