#include <functional> using namespace std; // 単項関数オブジェクトの雛型 template<typename Argument, typename Result> struct class_name : public unary_function<Argument, Result> { Result operator () ( Argument &arg ) { // ...; } }; // 2項関数オブジェクトの雛型 template<typename Argument1, typename Argument2, typename Result> struct class_name : public binary_function<Argument1, Argument2, Result> { Result operator () ( Argument1 &arg1, Argument2 &arg2 ) { // ...; } };