#include <iostream>
#include <iomanip>
#include <functional>
using namespace std;
class Test
{
public:
void f() { cout << "Test::f\n"; }
};
void g() { cout << "g\n"; }
int main(int argc, const char * argv[])
{
Test t;
std::function<void(void)> f[] =
{g,std::bind(&Test::f,t), [](){cout << "lambda\n";}};
for(auto s: f) s();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGZ1bmN0aW9uYWw+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgVGVzdAp7CnB1YmxpYzoKICAgIHZvaWQgZigpIHsgY291dCA8PCAiVGVzdDo6ZlxuIjsgfQp9OwoKdm9pZCBnKCkgeyBjb3V0IDw8ICJnXG4iOyB9CgoKaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiBhcmd2W10pCnsKICAgIFRlc3QgdDsKICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCh2b2lkKT4gZltdID0KICAgIHtnLHN0ZDo6YmluZCgmVGVzdDo6Zix0KSwgW10oKXtjb3V0IDw8ICJsYW1iZGFcbiI7fX07CiAgICBmb3IoYXV0byBzOiBmKSBzKCk7Cn0KCg==