来自「一本非常号的电子书籍」· 代码 · 共 36 行

TXT
36
字号
作者:rick1126
email: rickzhang@sina.com.cn
日期:2001-4-15 9:48:59
FUNCTION OBJECT BASES 
要将书写函数对象的进程简单化, 标准库提供两个类模板作为这样的对象的基类: std::unary_function 和 std::binary_function. 它们都在头文件 < functional > 中声明. 根据其命名, unary_function 提供接收一个参数的基函数而 binary_function 提供一个接收两个参数的基函数. 

    template < class Arg, class Res > struct 
    unary_function 
    {
        typedef Arg argument_type;
        typedef Res result_type;
    };

    template < class Arg, class Arg2, class Res > 
    struct binary_function 
    {
        typedef Arg first_argument_type;
        typedef Arg2 second_argument_type;
        typedef Res result_type;
    }; 

这些模板不提供任何有用的函数体, 它们只是确保参数和返回类型具有统一的命名. 在下面的例子里面, 谓词 is_vowel 表示一个参数, 继承自 unary_function: 

    template < class T > 
    class is_vowel: public unary_function< T, bool >
    {
     public:
        bool operator ()(T t) const
        {
            if ((t=='a')||(t=='e')||(t=='i')||(t=='o')||(t=='u'))
            return true;
            return false;
        }
    }; 
-----------
Danny Kalev 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?