#include <iostream>
#include <functional>
class DailyActivity {
public:
explicit DailyActivity(std::function<void ()> f) : m_function(f) {}
void run() { m_function(); }
private:
std::function<void ()> m_function;
};
void function1() { std::cout << "function1\n"; }
void function2(int i) { std::cout << "function2 :" << i << std::endl; }
int main() {
DailyActivity activity1(&function1);
DailyActivity activity2([](){function2(1);});
activity1.run();
activity2.run();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KCmNsYXNzIERhaWx5QWN0aXZpdHkgewogIHB1YmxpYzoKICAgIGV4cGxpY2l0IERhaWx5QWN0aXZpdHkoc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBmKSA6IG1fZnVuY3Rpb24oZikge30KICAgIHZvaWQgcnVuKCkgeyBtX2Z1bmN0aW9uKCk7IH0KCiAgcHJpdmF0ZToKICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gbV9mdW5jdGlvbjsKfTsKCnZvaWQgZnVuY3Rpb24xKCkgeyBzdGQ6OmNvdXQgPDwgImZ1bmN0aW9uMVxuIjsgfQp2b2lkIGZ1bmN0aW9uMihpbnQgaSkgeyBzdGQ6OmNvdXQgPDwgImZ1bmN0aW9uMiA6IiA8PCBpIDw8IHN0ZDo6ZW5kbDsgfQoKCmludCBtYWluKCkgewoJRGFpbHlBY3Rpdml0eSBhY3Rpdml0eTEoJmZ1bmN0aW9uMSk7CglEYWlseUFjdGl2aXR5IGFjdGl2aXR5MihbXSgpe2Z1bmN0aW9uMigxKTt9KTsKCQoJYWN0aXZpdHkxLnJ1bigpOwoJYWN0aXZpdHkyLnJ1bigpOwp9