`
yaojingguo
  • 浏览: 202066 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

tr1 function (memo)

 
阅读更多

I make the sample code in Item 35 be compiled. Add a line of code to use class directly. It is memo for me to remember it.

 

#include <tr1/memory>
#include <string>
#include <iostream>
#include <tr1/functional>
using namespace std;

class GameCharacter;

int defaultHealthCalc(const GameCharacter& gc);

class GameCharacter {
  public:
    typedef tr1::function<int (const GameCharacter&)> HealthCalcFunc;
    
    explicit GameCharacter(HealthCalcFunc hcf = defaultHealthCalc) 
      : healthFunc(hcf)
    {
    }

    int healthValue() const {
      return healthFunc(*this);
    }

  private:
    HealthCalcFunc healthFunc;
};

// function
short calcHealth(const GameCharacter& gc) {
}

// struct
struct HealthCalculator {
  int operator() (const GameCharacter&) const {
  }
};

// class
class GameLevel {
  public:
    float health(const GameCharacter& gc) const {
    }
};

class EvilBadGuy: public GameCharacter {
  public:
    EvilBadGuy(HealthCalcFunc hcf) : GameCharacter(hcf) {
    }
};

class EyeCandyCharacter: public GameCharacter {
  public:
    EyeCandyCharacter(HealthCalcFunc hcf) : GameCharacter(hcf) {
    }
};

int main(int argc, const char *argv[]) {
  EvilBadGuy ebg1(calcHealth);
  EyeCandyCharacter ecc1(HealthCalculator);

  GameLevel currentLevel;
  EvilBadGuy ebg2(tr1::bind(&GameLevel::health,
                            currentLevel,
                            tr1::placeholders::_1)
      );
  // class is similar to struct
  EvilBadGuy xx(GameLevel);
  return 0;
}
 
分享到:
评论

相关推荐

    c++标准库扩展 TR1

    std::tr1现在已经广泛应用了,shared_ptr, function, bind, mem_fn, tuple都是很重要的工具。

    IPD技术评审(TR1-TR6)知识分享

    IPD技术评审(TR1-TR6)知识分享IPD技术评审(TR1-TR6)知识分享IPD技术评审(TR1-TR6)知识分享IPD技术评审(TR1-TR6)知识分享IPD技术评审(TR1-TR6)知识分享

    基于NA5TR1的无线定位节点的设计

    定位节点采用NA5TR1为无线定位节点的核心器件,该器件内部集成了具有双边两路测距功能的模块和2.45 GHz ISM RF收发器,利用ATmega644v单片机为控制器,完成无线定位节点的整体设计,并给出无线定位节点电路原理图。

    TCT40-16TR1 压电陶瓷超声传感器(通用型)

    TCT40-16TR1 压电陶瓷超声传感器(通用型) TCT40-16TR1 压电陶瓷超声传感器(通用型)

    TR1

    模块名称tr1 应用标题旅行要求 命名空间 UI5主题sap_fiori_3 UI5版本最新的 启用遥测真的 tr1 旅行要求 启动生成的应用 此应用程序是使用SAP Fiori工具套件中的SAP Fiori工具-App Generator生成的。 为了启动生成...

    C++ TR1 report

    这是C++ TR1的官方report。里面详细的介绍了TR1新引入的一些类和库,非常的实用,讲解也比较详细。如果大家比较感兴趣TR1的话,可以下载《C++标准库扩展权威指南》这本书。

    sony pcg-tr1c 无线网卡驱动

    sony pcg-tr1c 无线网卡驱动

    sony pcg-tr1c 声卡驱动

    sony pcg-tr1c 声卡驱动,这个是原装的。 找了好久

    C++ reference chm 参考手册(包含STL tr1等)

    C++ reference chm 参考手册(包含STL tr1等)

    TR1——TR6产品开发各阶段评审要素说明.docx

    TR1——TR6产品开发各阶段评审要素说明.docx

    TR1 的 ros_control硬件接口_C++_代码_相关文件_下载

    TR1 的 ros_control硬件接口_C++_代码_相关文件_下载

    sony pcg-tr1c sud

    安装顺序:Sony Shared Library → Sony Utilities DLL → Sony Notebook Setup → HotKey Utility → Power Panel

    sony pcg-tr1c hotkey

    安装顺序:Sony Shared Library → Sony Utilities DLL → Sony Notebook Setup → HotKey Utility → Power Panel

    sony pcg-tr1c powerpanel

    安装顺序:Sony Shared Library → Sony Utilities DLL → Sony Notebook Setup → HotKey Utility → Power Panel

    sony pcg-tr1c sns

    安装顺序:Sony Shared Library → Sony Utilities DLL → Sony Notebook Setup → HotKey Utility → Power Panel

    n3tr1c1

    n3tr1c1

    sony pcg-tr1c fn ssl

    安装顺序:Sony Shared Library → Sony Utilities DLL → Sony Notebook Setup → HotKey Utility → Power Panel

    ETC_0603ESDA-TR1.pdf

    ESD静电管,保护复位电路,便于过EMC测试

    G3tr1s-开源

    G3tr1s是Tetris的另一个开源J2ME克隆。 完成级别配额以进入下一个级别。 当所有关卡都通过时,游戏结束,或者一个方块到达了方块的顶部。 各种统计信息都记录在高分表中。

    M4TR1X Toolkit-开源

    M4TR1X工具包是一些有用的黑客工具的集合。 它是基于Web的,并且可以在Windows和Linux / Unix / BSD上运行。 lam0rs没什么!

Global site tag (gtag.js) - Google Analytics