C++ std::bind'
时间: 2023-11-04 13:57:53 浏览: 85
C++ STL 内 std::{bind/tuple/function} 简单实现
C++中的std::bind()是一个函数模板,用于将函数与参数绑定在一起,形成一个可调用对象。通过std::bind(),我们可以将函数的参数部分绑定,并将剩余的参数留给后续调用。它可以用于创建一个函数对象,该对象可以在后续的调用中参与计算。
在上面的示例中,std::bind()将print()函数和整数n的引用绑定在一起。通过使用std::ref()将n包装成引用,std::bind()将n的引用作为参数传递给print(),并对n进行了修改。
std::bind()还支持绑定默认参数。在示例中,add()函数有3个参数,其中第三个参数c有默认值0。通过使用std::placeholders::_1和std::placeholders::_2,我们可以将参数绑定到add()函数的第二个和第一个参数上。然后,通过设置第三个参数为0,我们创建了一个新的函数对象f。当我们调用f时,我们只需要提供前两个参数,而第三个参数将自动设置为0。
阅读全文