#include <functional>
#include <iostream>
class Animation
{
public:
Animation(std::function<void()>&& onCompleted) : whenCompleted(onCompleted) {}
std::function<void()> whenCompleted;
void startAnimation() { animationEnded(); }
void animationEnded() { whenCompleted(); }
};
int main()
{
Animation score{[](){ std::cout << "all done"; }};
score.startAnimation();
}
I2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiNpbmNsdWRlIDxpb3N0cmVhbT4KCmNsYXNzIEFuaW1hdGlvbgp7CnB1YmxpYzoKCUFuaW1hdGlvbihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4mJiBvbkNvbXBsZXRlZCkgOiB3aGVuQ29tcGxldGVkKG9uQ29tcGxldGVkKSB7fQoJc3RkOjpmdW5jdGlvbjx2b2lkKCk+IHdoZW5Db21wbGV0ZWQ7CgkKCXZvaWQgc3RhcnRBbmltYXRpb24oKSB7IGFuaW1hdGlvbkVuZGVkKCk7IH0KCXZvaWQgYW5pbWF0aW9uRW5kZWQoKSB7IHdoZW5Db21wbGV0ZWQoKTsgfQp9OwoKaW50IG1haW4oKQp7CglBbmltYXRpb24gc2NvcmV7W10oKXsgc3RkOjpjb3V0IDw8ICJhbGwgZG9uZSI7IH19OwoJc2NvcmUuc3RhcnRBbmltYXRpb24oKTsKfQ==