zoukankan      html  css  js  c++  java
  • 标准库bind函数中使用占位符placeholders

            placeholders ,占位符。表示新的函数对象中参数的位置。当调用新的函数对象时,新函数对象会调用被调用函数,并且其参数会传递到被调用函数参数列表中持有与新函数对象中位置对应的占位符。

    举个例子:

            void function(arg1,arg2,arg3,arg4,arg5)

            {

                //do something

            }

            auto g = bind(function,a,b,_2,c,_1);

            新的函数对象:g

            被调用函数:function

            当调用函数对象g时候,函数对象g会调用function函数,并把其参数传给function函数,g的第一个参数会传给function的持有占位符_1的位置,即arg5。第二个参数会传给function的持有占位符_2的位置,即arg3。

            void g(X,Y);

            相对于调用下面函数

            function(function,a,b,Y,c,X);

            其中的arg1,arg2,arg4已经被绑定到a,b,c上。

            

            placeholders是一个命名空间,其本身定义在std命名空间中。placeholder中有名字_n (1,2,3,4,……n)。为了使用这些名字,两个命名空间都必须写上。例如:

    using namespace std::placeholders::_1;

          与bind函数一样,placeholders命名空间也定义在functional中。

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    Report parameters
    维护SE16N Maintain entries
    SE16N Related &SAP_EDIT (转载)
    SD增强 MV45AFZZ
    原始系统问题SE03 Original System
    eclipse 连接不上HBase集群
    Hadoop hdfs yarn HA
    hadoop手动启动jobhistory
    hadoop错误提示 exitCode: 1 due to: Exception from container-launch.
    no filesystem for scheme hdfs
  • 原文地址:https://www.cnblogs.com/houjun/p/4802190.html
Copyright © 2011-2022 走看看