C++11 提供了 std::terminate() 用于终止程序,配合 set_terminate 可以注册自定义的终止处理函数。当异常产生时,若调用了 std::terminate(),程序将调用该注册函数,默认行为是调用 abort。
std::terminate(); set_terminate ,产生异常会调用该函数,默认是调用abort
void handler()
{
cout << "error ~~~~~~~~~~~~~~~~~~";
}
std::set_terminate(handler);//默认调用abort
try
{
throw std::logic_error("logic error");
throw std::runtime_error("mem leack");
}
catch (std::exception e)
{
cout << e.what();
// abort();
std::terminate(); //终止处理异常
}
std::ref 强制转换为引用&
std::move 强制转换 右值引用&&