A signal/slot implementation using std::function.