Home C&C++函数库 c++ 语法 程序源码 Linux C库

std::

unary_function

类模板  <functional>

C++98
template <class Arg, class Result> struct unary_function;

一元函数对象基类
注意:这个类在c++ 11中已弃用。

这是标准一元函数对象的基类。

一般来说,函数对象是定义了成员函数operator()的类的实例。该成员函数允许使用与常规函数调用相同的语法来使用对象, 因此当期望使用泛型函数类型时,可以将其类型用作模板参数。

对于一元函数对象,这个operator()成员函数接受单个形参。

Unary_function只是一个基类,从它派生出特定的一元函数对象。 它没有定义operator()成员(期望派生类定义哪些成员)—-它只有两个公共数据成员,它们是模板形参的类型定义。定义为:
template <class Arg, class Result>
  struct unary_function {
    typedef Arg argument_type;
    typedef Result result_type;
  };

☲  成员类型


成员类型 定义 注释
argument_type 第一个模板参数(Arg) 成员operator()中的实参类型
result_type 第二个模板参数(Result) 成员operator()返回的类型

☣  示例



// unary_function example
#include <iostream>     // std::cout, std::cin
#include <functional>   // std::unary_function

struct IsOdd : public std::unary_function<int,bool> {
  bool operator() (int number) {return (number%2!=0);}
};

int main () {
  IsOdd IsOdd_object;
  IsOdd::argument_type input;
  IsOdd::result_type result;

  std::cout << "Please enter a number: ";
  std::cin >> input;

  result = IsOdd_object (input);

  std::cout << "Number " << input << " is " << (result?"odd":"even") << ".\n";

  return 0;
}

可能输出:
Please enter a number: 2
Number 2 is even.

🍄  另请参阅



binary_function 二元函数对象基类 (类模板)

联系我们 免责声明 关于CandCplus 网站地图