3.3.5. pfi::lang::function

3.3.5.1. 概要

いろいろな関数のような振る舞いをするものを一まとめに扱うためのクラス。

Deprecated since version 4.0: この機能はC++11からSTLで提供されるようになったため、 後方互換性の維持のために残しているものの、 std::function の利用を推奨する。

3.3.5.2. 使い方

int add(int a, int b){ return a+b; }
function<int(int,int)> f=&add;
cout<<f(1,2)<<endl; // 3

普通の関数も。

class add{ public:
  int operator()(int a, int b) const{ return a+b; }
};
function<int(int,int)> f=add();
cout<<f(1,2)<<endl; // 3

関数オブジェクトも。

function<int(int)> f=bind1st(&add, 1);
cout<<f(2)<<endl; // 3

stlが作った関数オブジェクトも。