#include <iostream>
#include <functional>
using namespace std;
auto f()
{
return nullptr;
}
int main() {
void *a=f();
std::function<double()> fn=[]{return 1;};
std::function<void *()> fn1=[]{return nullptr;};
//std::function<void *(void)> f0 = [](void) { return NULL; }; //コンパイルエラー
std::function<void *(void)> f1 = [](void) { return (void *)NULL; };
std::function<void *(void)> f2 = [](void)->void * { return NULL; };
std::function<void *(void)> f3 = [](void) { return nullptr; };
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmF1dG8gZigpCnsKCXJldHVybiBudWxscHRyOwp9CgppbnQgbWFpbigpIHsKCQoJdm9pZCAqYT1mKCk7CglzdGQ6OmZ1bmN0aW9uPGRvdWJsZSgpPiBmbj1bXXtyZXR1cm4gMTt9OwoJc3RkOjpmdW5jdGlvbjx2b2lkICooKT4gZm4xPVtde3JldHVybiBudWxscHRyO307CgkKCQoJCgkvL3N0ZDo6ZnVuY3Rpb248dm9pZCAqKHZvaWQpPiBmMCA9IFtdKHZvaWQpIHsgcmV0dXJuIE5VTEw7IH07IC8v44Kz44Oz44OR44Kk44Or44Ko44Op44O8CglzdGQ6OmZ1bmN0aW9uPHZvaWQgKih2b2lkKT4gZjEgPSBbXSh2b2lkKSB7IHJldHVybiAodm9pZCAqKU5VTEw7IH07IAoJc3RkOjpmdW5jdGlvbjx2b2lkICoodm9pZCk+IGYyID0gW10odm9pZCktPnZvaWQgKiB7IHJldHVybiBOVUxMOyB9OyAKCXN0ZDo6ZnVuY3Rpb248dm9pZCAqKHZvaWQpPiBmMyA9IFtdKHZvaWQpIHsgcmV0dXJuIG51bGxwdHI7IH07IAoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJcmV0dXJuIDA7Cn0=