std::bind 和 std::function
时间: 2023-07-22 13:02:11 浏览: 131
std::function 是 C++11 标准库中的一个模板类,它可以存储任意可调用对象(函数、函数指针、函数对象、lambda 表达式)。std::function 可以做为一个通用的回调函数使用,以实现函数重载、类型转换、参数绑定等功能。
std::bind 是 C++11 标准库中的一个函数,可以创建一个可调用对象,以实现参数绑定。std::bind 可以绑定函数、函数指针、成员函数指针等可调用对象的一些参数,并返回一个可调用的对象。这个对象可以作为 std::function 存储,以实现一些常用的参数绑定需求。
相关问题
C++ std::bind 和 std::function
可以回答这个问题。C++11 引入了 std::bind 和 std::function,它们都是函数对象的封装。std::bind 可以将一个函数和一些参数绑定在一起,形成一个新的可调用对象;std::function 可以存储任何可调用对象,包括函数指针、函数对象、成员函数指针等。它们都可以用于实现回调函数、事件处理等功能。
Qt485版本支不支持std::bind和std::function
Qt 4.8.5 是一个比较老的版本,它的编译器可能不支持 C++11 的新特性,包括 std::bind 和 std::function。这两个特性是 C++11 引入的,用于函数对象的封装和绑定。如果你想在 Qt 4.8.5 中使用这些特性,你可以考虑使用 Boost 库的相应功能,Boost 库提供了类似的功能,并且对更旧的编译器也有良好的兼容性。另外,如果你能升级到更高版本的 Qt,那么 std::bind 和 std::function 会在支持 C++11 的版本中得到完全支持。
阅读全文