#include <iostream>
#include <new>
#include <typeinfo>
#include <string>
#include <vector>
#include <functional>
#include <algorithm>
using namespace std;
class A {
public:
A() {
cout << "Calling A constructor" << endl;
}
int x=0;
virtual void someshit() {
cout << "Base class function" << endl;
}
};
class D : public A {
public :
virtual void someshit() {
cout << "Derived class function" << endl;
}
};
int main() {
function<bool (const string*)> fp = &string::empty;
auto se=&string::empty;
vector<string> v{"Hello", "xxx", ""};
vector<string*> vs{{new string("Hello")}};
for_each(vs.begin(), vs.end(), fp);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bmV3PgojaW5jbHVkZSA8dHlwZWluZm8+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxmdW5jdGlvbmFsPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQSB7CglwdWJsaWM6CglBKCkgewoJCWNvdXQgPDwgIkNhbGxpbmcgQSBjb25zdHJ1Y3RvciIgPDwgZW5kbDsKCX0KCWludCB4PTA7Cgl2aXJ0dWFsIHZvaWQgc29tZXNoaXQoKSB7CgkJY291dCA8PCAiQmFzZSBjbGFzcyBmdW5jdGlvbiIgPDwgZW5kbDsKCX0KfTsKCmNsYXNzIEQgOiBwdWJsaWMgQSB7CglwdWJsaWMgOgoJdmlydHVhbCB2b2lkIHNvbWVzaGl0KCkgewoJCWNvdXQgPDwgIkRlcml2ZWQgY2xhc3MgZnVuY3Rpb24iIDw8IGVuZGw7Cgl9Cn07CgppbnQgbWFpbigpIHsKZnVuY3Rpb248Ym9vbCAoY29uc3Qgc3RyaW5nKik+IGZwID0gJnN0cmluZzo6ZW1wdHk7CglhdXRvIHNlPSZzdHJpbmc6OmVtcHR5OwoJdmVjdG9yPHN0cmluZz4gdnsiSGVsbG8iLCAieHh4IiwgIiJ9OwoJdmVjdG9yPHN0cmluZyo+IHZze3tuZXcgc3RyaW5nKCJIZWxsbyIpfX07Cglmb3JfZWFjaCh2cy5iZWdpbigpLCB2cy5lbmQoKSwgZnApOwoJcmV0dXJuIDA7Cn0=