码迷,mamicode.com
首页 > 其他好文 > 详细

条目四十:若一个类是函数子,使它可适配

时间:2019-04-01 01:03:10      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:函数适配器   func   UNC   amp   fun   对象   要求   产生   第一个   

《条目四十:若一个类是函数子,使它可适配》

在stl中,下面的函数适配器可以使函数指针转换为特定的类型,供下面的使用。

4个标准的函数配接器(not1、not2、bind1st和bind2nd)都要求一些特殊的类型定义,那些非标准的、与STL兼容的配接器通常也是如此。

但是如果是函数对象,那么需要继承基类函数适配器,实现特定的接口,使函数子拥有可适配的特性,这样才能更加健壮,适用范围更广。

如果函数子类的operator()只有一个实参,那么它应该从std::unary_function继承;如果函数子类的operator()有两个实参,那么它应该从std::binary_function继承。

对于unary_function,你必须指定函数子类operator()所带的参数的类型,以及返回类型;而对于binary_function,你必须指定三个类型:operator()的第一个和第二个参数的类型,以及operator()的返回类型。

传递给unary_function或binary_function的非指针类型需要去掉const和引用(&)部分。

这样做之后,就可以实现提供函数对象配接器所需要的类型定义,这样通过简单的继承,我们就产生了可配接的函数对象。

条目四十:若一个类是函数子,使它可适配

标签:函数适配器   func   UNC   amp   fun   对象   要求   产生   第一个   

原文地址:https://www.cnblogs.com/liangjf/p/10634105.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!