182得票4回答
std::function和std::bind:它们是什么,何时应该使用?这是一个关于IT技术的提问标题。

我知道functor是什么以及何时使用它们与std算法,但我不理解Stroustrup在C++11 FAQ中讲述的有关它们的内容。 是否有人可以解释一下std::bind和std::function是什么,何时应该使用它们,并为新手提供一些示例?

73得票4回答
C++11 std::bind和boost::bind的区别

这两者之间有何区别?我在代码中可以将每个boost::bind替换为std::bind,从而消除对Boost的依赖吗?

65得票2回答
为什么在C++20中要使用`std::bind_front`而不是lambda表达式?

如同一个类似措辞的问题所提到的 (为什么在c++14中使用std::bind而不是lambda表达式?),答案是——没有理由(并且还提到了为什么使用lambda更好)。 我的问题是——如果在C++14中已经不需要使用bind了,为什么标准委员会觉得有必要在C++20中添加std::bind_f...

50得票2回答
std::bind如何与成员函数一起使用

我正在使用std::bind,但是我仍然不理解当我们将其与类成员函数一起使用时它是如何工作的。如果我们有以下函数:double my_divide (double x, double y) {return x/y;} 我完全理解下面代码的含义:auto fn_half = std::bind ...

24得票2回答
为什么要使用mem_fn?

我不明白为什么需要使用 std::mem_fn。 我有一个函数,它可以接受任何可调用对象(lambda、函数指针等),并将其绑定到一个参数上。 例如: template<class T> void Class::DoBinding(T callable) { m_call...

22得票1回答
为什么从bind返回的对象会忽略额外的参数?

假设我有一个接受两个参数的函数,void f(int x, int y); 我希望绑定其中一个。我可以使用std::bind,如下所示:auto partiallyBoundF = std::bind(f, 10, _1); partiallyBoundF函数只接受一个参数,但是我可以用多个参...

22得票2回答
为什么在这个例子(成员函数)中没有占位符时std :: bind不能工作?

例如,这是我的成员函数 (do_it):class oops { public: void do_it(GtkWidget *widget, GdkEvent *event, gpointer data) { g_print ("Hi there :)\n");...

21得票2回答
std::bind传递为右值引用时会丢失引用。

我有以下代码: #include <stdio.h> #include <functional> template <typename T> auto callback(T&& func) ->decltype(func()) { ...

19得票2回答
如何通过引用将函数绑定到对象上?

我有以下代码来将成员函数绑定到类的实例:class Foo { public: int i; void test() { std::cout << i << std::endl; } }; int main() { Fo...

17得票4回答
是否存在适用于右值引用的reference_wrapper<>?

我想知道如何完成以下操作。 void f(string &amp;&amp;s) { std::string i(move(s)); /* other stuff */ } int main() { std::string s; bind(f, s)(); //...