#include <iostream>
#include <functional>
// 定义一个简单的函数
void greet(const std::string& greeting, const std::string& name) {
std::cout << greeting << ", " << name << "!" << std::endl;
}
// 定义一个带返回值的函数
int add(int a, int b) {
return a + b;
}
int main() {
// 使用 std::bind 绑定函数和参数
auto greet_world = std::bind(greet, "Hello", std::placeholders::_1);
greet_world("World"); // 输出: Hello, World!
// 绑定带返回值的函数
auto add_five = std::bind(add, 5, std::placeholders::_1);
std::cout << "5 + 3 = " << add_five(3) << std::endl; // 输出: 5 + 3 = 8
return 0;
}
std::bind:这是一个用于创建函数对象的工具,它允许你将某些参数绑定到一个函数上,从而生成一个新的函数对象。这个新函数对象可以在稍后调用时使用剩余的参数。
greet 函数:这是一个简单的函数,接受两个字符串参数并输出问候语。
add 函数:这是一个带返回值的函数,接受两个整数参数并返回它们的和。
std::placeholders::_1:这是占位符,表示在调用时传递的实际参数。_1 表示第一个参数,_2 表示第二个参数,依此类推。
greet_world:通过 std::bind 将 greet 函数的第一个参数绑定为 "Hello",而第二个参数则使用占位符 _1,这意味着在调用 greet_world 时,只需要传递一个参数(即名字)。
add_five:通过 std::bind 将 add 函数的第一个参数绑定为 5,而第二个参数使用占位符 _1,这意味着在调用 add_five 时,只需要传递一个参数(即要加的数)。
上一篇:c++ dynamic_cast
下一篇:c++ concept
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站