• 第二章函数对象


    3.1 Boost.Bind

    它简化了由C++标准中的std::bind1st和 std::bind2st模板函数所提供的一个机制:将这些函数与几乎不限数量的参数一起使用,就可以得到指定签名的函数。

    扩展:一个绑定器使用另一个函数对象f()和参数值V创建一个函数对象。被绑定函数对象必须为双目函数,也就是说有两个参数,A和B。STL 中的帮定器有:
    ·bind1st() 创建一个函数对象,该函数对象将值V作为第一个参数A。
    ·bind2nd()创建一个函数对象,该函数对象将值V作为第二个参数B。
     3.2.Boost.Ref 

      本库Boost.Ref通常与Boost.Bind一起使用,所以我把它们挨着写。它提供了两个函数-boost::ref()和 boost::cref()- 定义于boost/ref.hpp. 当要用于boost::bind()的函数带有至少一个引用参数时,Boost.Ref就很重要了。由于boost::bind() 会复制它的参数,所以引用必须特别处理。

    3.3 Boost.Function

    为 了 封 装 函 数 指 针 ,Boost.Function 提 供 了 一 个 名 为 boost::function 的 类 。 它 定 义 于boost/function.hpp.在调用这样的一个函数时,传入的第一个参数表示了该函数被调用的那个特定对象。因此,在模板定义中的左括号后的第一个参数必须是该特定类的指针。接下来的参数才是表示相应的成员函数的签名。这个程序还使用了来自Boost.Ref库的boost::ref(),它提供了一个方便的机制向Boost.Function传递引用。

     3.4.Boost.Lambda

    匿名函数- 又称为lambda 函数- 已经在多种编程语言中存在,但C++除外(C++11中已经加入)。lambda 函数的目标是令源代码更为紧凑,从而也更容易理解。

  • 相关阅读:
    【东师软工】第二次成绩排行榜
    博客(懒得在cnblog移了)
    elementUI el-tree 修改无子项的样式
    流文件下载方法
    2.2.3 核心模块--理解.NetCore Configuration 配置管理
    Centos7下安装部署Asp.Net Core多版本依赖环境
    LADP认证接入
    Identity Server基础
    浅析DevOps中结合IAST的落地介绍
    从Leetcode的回文子串中学习动态规划和中心扩散法
  • 原文地址:https://www.cnblogs.com/liou/p/3386862.html
Copyright © 2020-2023  润新知