1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #include <iostream> using namespace std; template<typename T> struct is_pure_func_ptr: public std::false_type {}; template<typename Ret, typename... Args> struct is_pure_func_ptr<Ret(Args...)>: public std::true_type {};//detecting functions themselves template<typename Ret, typename... Args> struct is_pure_func_ptr<Ret(*)(Args...)>: public std::true_type {};//detecting function pointers void f1() {}; int f2(int) {}; int f3(int, int) {}; struct Functor { void operator ()() {} }; int main() { cout << is_pure_func_ptr<decltype(f1)>::value << endl; // output true cout << is_pure_func_ptr<decltype(f2)>::value << endl; // output true cout << is_pure_func_ptr<decltype(f3)>::value << endl; // output true cout << is_pure_func_ptr<decltype(&f3)>::value << endl; // output true cout << is_pure_func_ptr<Functor>::value << endl; // output false cout << is_pure_func_ptr<char*>::value << endl; // output false } |
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgc3RydWN0IGlzX3B1cmVfZnVuY19wdHI6IHB1YmxpYyBzdGQ6OmZhbHNlX3R5cGUge307CiAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBSZXQsIHR5cGVuYW1lLi4uIEFyZ3M+CiAgICBzdHJ1Y3QgaXNfcHVyZV9mdW5jX3B0cjxSZXQoQXJncy4uLik+OiBwdWJsaWMgc3RkOjp0cnVlX3R5cGUge307Ly9kZXRlY3RpbmcgZnVuY3Rpb25zIHRoZW1zZWx2ZXMKICAgIHRlbXBsYXRlPHR5cGVuYW1lIFJldCwgdHlwZW5hbWUuLi4gQXJncz4KICAgIHN0cnVjdCBpc19wdXJlX2Z1bmNfcHRyPFJldCgqKShBcmdzLi4uKT46IHB1YmxpYyBzdGQ6OnRydWVfdHlwZSB7fTsvL2RldGVjdGluZyBmdW5jdGlvbiBwb2ludGVycwp2b2lkIGYxKCkKe307CgppbnQgZjIoaW50KQp7fTsKCmludCBmMyhpbnQsIGludCkKe307CgpzdHJ1Y3QgRnVuY3Rvcgp7CiAgICB2b2lkIG9wZXJhdG9yICgpKCkKICAgIHt9Cn07CgppbnQgbWFpbigpCnsKICAgIGNvdXQgPDwgaXNfcHVyZV9mdW5jX3B0cjxkZWNsdHlwZShmMSk+Ojp2YWx1ZSA8PCBlbmRsOyAvLyBvdXRwdXQgdHJ1ZQogICAgY291dCA8PCBpc19wdXJlX2Z1bmNfcHRyPGRlY2x0eXBlKGYyKT46OnZhbHVlIDw8IGVuZGw7IC8vIG91dHB1dCB0cnVlCiAgICBjb3V0IDw8IGlzX3B1cmVfZnVuY19wdHI8ZGVjbHR5cGUoZjMpPjo6dmFsdWUgPDwgZW5kbDsgLy8gb3V0cHV0IHRydWUKICAgIGNvdXQgPDwgaXNfcHVyZV9mdW5jX3B0cjxkZWNsdHlwZSgmZjMpPjo6dmFsdWUgPDwgZW5kbDsgLy8gb3V0cHV0IHRydWUKICAgIGNvdXQgPDwgaXNfcHVyZV9mdW5jX3B0cjxGdW5jdG9yPjo6dmFsdWUgPDwgZW5kbDsgICAgICAvLyBvdXRwdXQgZmFsc2UKICAgIGNvdXQgPDwgaXNfcHVyZV9mdW5jX3B0cjxjaGFyKj46OnZhbHVlIDw8IGVuZGw7ICAgICAgICAvLyBvdXRwdXQgZmFsc2UKfQ==
-
upload with new input
-
result: Success time: 0s memory: 2928 kB returned value: 0
1 1 1 1 0 0


