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 强制转换 右值引用&&