#include <functional>
#include <new>
int main() {
typedef void*(*newptr_type)(std::size_t);
typedef void(*delptr_type)(void*);
auto al = std::bind<void*>(newptr_type(::operator new), sizeof(char)*100);
auto dl = delptr_type(::operator delete);
auto field = (char*)al();
dl(field);
}
void othermain() {
auto al = [](){return new char[100];};
auto dl = [](char* p){delete[] p;};
auto field = (char*)al();
dl(field);
}
CiAgICAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICAgICNpbmNsdWRlIDxuZXc+CiAgICAgCiAgICBpbnQgbWFpbigpIHsKICAgICAgICB0eXBlZGVmIHZvaWQqKCpuZXdwdHJfdHlwZSkoc3RkOjpzaXplX3QpOyAgCiAgICAgICAgdHlwZWRlZiB2b2lkKCpkZWxwdHJfdHlwZSkodm9pZCopOyAgICAgICAgCiAgICAgICAgYXV0byBhbCA9IHN0ZDo6YmluZDx2b2lkKj4obmV3cHRyX3R5cGUoOjpvcGVyYXRvciBuZXcpLCBzaXplb2YoY2hhcikqMTAwKTsgICAKICAgICAgICBhdXRvIGRsID0gZGVscHRyX3R5cGUoOjpvcGVyYXRvciBkZWxldGUpOyAgICAKICAKICAgICAgICBhdXRvIGZpZWxkID0gKGNoYXIqKWFsKCk7CiAgICAgICAgZGwoZmllbGQpOwogICAgfQoKICAgIHZvaWQgb3RoZXJtYWluKCkgeyAKICAgICAgICBhdXRvIGFsID0gW10oKXtyZXR1cm4gbmV3IGNoYXJbMTAwXTt9OwogICAgICAgIGF1dG8gZGwgPSBbXShjaGFyKiBwKXtkZWxldGVbXSBwO307CiAgCiAgICAgICAgYXV0byBmaWVsZCA9IChjaGFyKilhbCgpOwogICAgICAgIGRsKGZpZWxkKTsKICAgIH0=