Always use C++11 std::function