zoukankan      html  css  js  c++  java
  • 第二章函数对象

    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 函数的目标是令源代码更为紧凑,从而也更容易理解。

  • 相关阅读:
    audiojs 音频插件使用教程
    JavaScrip 原生多文件上传及预览 兼容多浏览器
    node操作mongdb的常用函数示例
    D3基础---比例尺
    D3基础---简介和数据
    前端性能优化和规范
    CSS代码优化(转载)
    CSS基础知识---浮动,定位和盒模型
    CSS基础知识
    用户样式,作者样式和浏览器默认样式
  • 原文地址:https://www.cnblogs.com/liou/p/3386862.html
Copyright © 2011-2022 走看看