64,646
社区成员
发帖
与我相关
我的任务
分享
#include <new>
#include <iostream>
#include <string>
using namespace std;
typedef void (*func)(string &);
void outOfmem(string &a)
{
cout << a << endl;
exit(-1);
}
template<typename FunT, typename Para>
struct pp
{
pp(FunT a, Para &b):pfunc(a), pstr(&b)
{
}
void operator() ()
{
pfunc(*pstr)
}
private:
FunT pfunc;
Para *pstr;
};
int main()
{
string a = "我们";
set_new_handler(pp<func, string>(outOfmem, a)());
char *p = new char[2147483647];
return 0;
}
#include <new>
#include <iostream>
#include <string>
using namespace std;
typedef void (*func)(string &);
void outOfmem(string &a)
{
cout << a << endl;
exit(-1);
}
template<typename FunT, typename Para>
struct pp
{
pp(FunT a, Para &b):pfunc(a), pstr(&b)
{
}
new_handler operator() ()
{
pfunc(*pstr);
return new_handler();
}
private:
FunT pfunc;
Para *pstr;
};
int main()
{
string a = "我们";
set_new_handler(pp<func, string>(outOfmem, a)());
char *p = new char[2147483647];
return 0;
}