std::bind

利用std::bind可以改变可调用对象的参数数量顺序
std::placeholders::_n为占位符,代表新的可调用对象的第n个参数。

auto g = bind(f, a, b, std::placeholders:_2, c, std::placeholders:_1);

假定f是一个可调用对象,它有5个参数,使用std::bind绑定后,生成新的可调用对象g,它有两个参数,分别是std::placeholders::_1和std::placeholders::_2。
g的第一个参数为_1,第二个参数为_2,对应到f上分别是f的第5个参数和第三个参数。

示例:

#include <iostream>
#include <functional>

void printDate(int day, int month, int year)
{
    std::cout << year << "/" << month << "/" << day << std::endl;
}


int main()
{
// 使用示例
    auto printDateNew = std::bind(printDate, std::placeholders::_2, std::placeholders::_1, 2024);
    
    printDateNew(11, 12);

    return 0;
    
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 概述 bind函数可以看作一个通用的函数适配器,所谓适配器,即使某种事物的行为类似于另外一种事物的一种机制,如容器...
    荏苒何从cc阅读 14,023评论 0 4
  • 1. 可调用对象 可调用对象有一下几种定义: 是一个函数指针,参考 C++ 函数指针和函数类型; 是一个具有ope...
    georgeguo阅读 133,425评论 5 76
  • 可调用对象 普通函数、类的成员函数、重载了()的类对象、函数指针、lambda函数。 函数类型由它的返回值和参数类...
    钟离惜阅读 494评论 0 0
  • 1. 什么是std::function std::function其实就是一个类模板,含有c的函数指针概念。 类模...
    凉拌姨妈好吃阅读 4,365评论 1 4
  • std::bind的基本用法是,绑定一个函数对象,和一堆参数,生成一个新的可调用函数,调用该函数时,会调用绑定的函...
    daniel_lbg阅读 2,853评论 0 2

友情链接更多精彩内容