C/C++ 这里面讨论的范围包括从以往开始,到现有的所有官方标准,VC扩展,GCC扩展,

C语言部分包括C89、C90、C99、C11这些知名的大版本,中间或者之前的比如K&R这种不出名的小版本我没啥兴趣去了解,所以暂时放弃。

C++语言部分包括C++98、C++03、C++11这种知名的大版本,更早之前的1.0、2.0、3.0什么的,暂时放弃。

再加上两大主流编译器的扩展,VC扩展以及GCC扩展。

clong之类的这种不考虑。

进入主题

今天第一次扯蛋,我想说的类型就是

std::function

C++11,新出了这么个玩意,哎,这是要干啥,到底为了啥。

首先我们需要承认的就是,这东西其实很牛,功能很强大,可以把各种乱七八糟的玩意都组装成函数,

但是问题来了,作为一个函数指针,最基础的功能,就是比较两个函数是否是同一个函数,这功能没有啊,

好比一个数学高材生,解决各种疑难问题,解决各种四元四次方程,but ,1+1 等于几,这个算不了。

比如按照C++11最新标准,std::function 能干的事情可多了,

可以这么玩

std::function<int(int, int)> f = fpFunction;

可以这么玩

using FtCallbackProc = std::function<void(int)>;

还可以这么玩

std::function<int()> fp = std::bind([](int x, int y)->int { return x + y; }, , );

但是,不能这么玩

	std::function<int(int, int)> fp = add;
fp == add;

编译不过,呵呵呵呵呵呵,说是没operator==。

这样就会导致出现一个问题,就是stl里面基本上如果用了std::function的话,那么就不能再做查询、删除操作了,

我定义了一个变量,给了它一个值,我都不能判断它的值和我给它的值是不是相等,

这变量也是牛B到没边了。

人生无奈,其实我很奇怪的是,使用它到底是图什么,图少打几行代码么,我用这个类用的实在是少,

而且我使用的很多都是极端用法,常规用法我也不怎么用得上。

so 这个类型是我发现非常坑的类型,我最讨厌的数据类型。

最新文章

  1. 华为oj 刷题记录之合唱团
  2. python操作日期和时间的方法
  3. goim 及时消息 集成
  4. Java经典兔子问题
  5. js的规范写法ES5(自己以后按照这样写)
  6. 让你彻底理解 “==”与 Equals
  7. 什么是blob,mysql blob大小配置介绍
  8. http://blog.csdn.net/jiyiqinlovexx/article/details/38326865
  9. IntelliJ IDEA 比较当前版本文件与历史文件
  10. appserv在哪修改服务器名
  11. bzoj 2746: [HEOI2012]旅行问题 AC自动机fail树
  12. RedHat下GCC及G++的安装
  13. HDU1181【有向图的传递闭包】
  14. Windows定时计划执行Python
  15. jQuery基础知识总结二
  16. JS判断
  17. 【工匠大道】升级Mac下的svn,解决命令行不能使用svn的问题
  18. Nginx模块开发与架构解析(nginx安装、配置说明)
  19. lua(wax框架) 适配 64位操作系统
  20. Android——电脑蓝屏重启后,studio无法认出Android环境 setup JDK(缓存!缓存!缓存)

热门文章

  1. PdgCntEditor系列教程一:基础知识
  2. FastReport.net 使用 Winform WebForm打印
  3. config maven in intellij IDEA
  4. 图片查看器(类似于QQ,另外又加了JARA的下方的图片缩略导航图)
  5. border-radius使用的一些问题(不起作用?)
  6. Java运行显示无待入值
  7. Java:新建数组
  8. 【leetcode】901. Online Stock Span
  9. Python基础(三):简化除法判断、分析apache访问日志、扫描存活主机、利用多线程实现ssh并发访问
  10. redis安装-1