C/C++ 吐槽第一期:你最讨厌的C/C++里面的数据类型是什么
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 这个类型是我发现非常坑的类型,我最讨厌的数据类型。
C/C++ 吐槽第一期:你最讨厌的C/C++里面的数据类型是什么的更多相关文章
- 软件工程驻足篇章:第十七周和BugPhobia团队漫长的道别
0x01 :序言 I am a slow walker, but I never walk backwards. 成长于被爱,学着爱人 成长的故事 也是年少的星期六结束的故事 就仿佛我和BugPhob ...
- 1、.NET平台概述
本学习主要参考Andrew Troelsen的C#与.NET4高级程序设计,这小节主要述说以下几个东西: 宏观上讨论一下.net相关的主题:程序集.CIL(Common Interme ...
- (网页)JavaScript周末总结(一)
本周学习的内容总结: 1. 2章在html中使用javascript. 2. 3章Javascript的基本概念. 3. 4章变量,作用域,内存问题. 1-1:2章以下内容: 1.包含javascri ...
- [吐槽]我为什么讨厌C++
最近在改currennt的代码,我擦擦擦,实在是忍不了了 C++最恶心的地方在于指针引用与面向对象混用!!TMD各种不匹配 举例: template <typename TDevice> ...
- 讨厌OpenSSL
在OpenSSL心脏出血后,.我相信很多人都出了血.而流下眼泪...瞬间出现在网上了很多吐槽OpenSSL文章还是那条,窝火一刻仿佛心脏被释放出来,按照这个忙疯了,我吐在嘈杂.在这些年被雪OpenSS ...
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(八)代码优化整理小记及个人吐槽
日常啰嗦 这两天也一直在纠结这一篇文章该写什么东西,前面临时加的两篇文章就有些打乱了整体节奏,这一篇又想去写一下代码层面优化的事情,可是也不太能抓住重要的点,不太确定从何入手,因为这件事情牵涉了太多技 ...
- 真的讨厌ClickOnce这东西
ClickOnce真的问题多. 升级问题,每次升级后都新建一个文件夹,旧的程序数据全都没有.迁移过来也一堆问题.还有录音问题,Win7下录音报错,最后查来查去就是将文件路径太太长,要控制长度.还有安装 ...
- [入门到吐槽系列] Webix 10分钟入门 一 管理后台制作
前言 本人是服务端程序员,同时需要兼职前端开发.常用的就是原生态的HTML.Javascript,也用过ExtJS.Layui.可是ExtJS变公司后非常难用.Layui上手还行,用过一段时间,会觉得 ...
- Javascript模拟继承(赠送.net吐槽一段)
首先吐槽一句,今年的就业形势很不乐观啊,特别是搞.net的(相对java),特特别是还没出校门没有正式工作经验的,找个实习很难,前些天接了个面试电话,上来就质疑我“你一个在校大学生怎么可能做了那么多项 ...
随机推荐
- python序列基本操作
这里讲一基本概念:容器---可以包含其他对象的对象:两种主要的容器是序列(列表和元祖)和映射(字典) 关于序列的通用基本操作:python中常用的序列主要有两种:列表和元祖 -------索引,切片 ...
- 想要成长,总得立个flag
国庆假期结束了,自己的成长却丝毫没有,所以啊,立个flag试试看,每天能发表一个小知识点,希望自己能够做到,加油
- mysql优化的理解(转载)
当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库.希望下面的这 ...
- shell unique
由于uniq命令只能对相邻行进行去重复操作,所以在进行去重前,先要对文本行进行排序,使重复行集中到一起 1.文本行去重 (1)排序由于uniq命令只能对相邻行进行去重复操作,所以在进行去重前,先要对文 ...
- wxss 优先级
外部元素>内部元素>id选择器>class 选择器>元素选择器
- ios添加-webkit-overflow-scrolling依然卡顿
项目由vue-cli2创建 在overflow: auto区域内滑动ios手机出现卡顿,搜索资料后添加-webkit-overflow-scrolling: touch ios bug: 1.滑动区域 ...
- Tomcat6 只允许指定域名访问,禁用IP地址访问,防止恶意解析
运维网监控突然同事反应,在百度上搜索其他域名,竟然打开了和我们P2P一模一样的网站,我第一个反应是源代码被盗用了.后来发现,是域名被恶意解析了,解决方法 1.禁止IP地址访问项目 2.只允许指定的域名 ...
- NORDIC内核ARM蓝牙芯片NRF51802/NRF51822
Nordic nRF51 系列的IC 和协议堆栈对内存大小.封装类型.接口.周边产品及无线连接提供更多选择. 关于 nRF51 系列 多协议 2.4GHz 射频收发器拥有高性能.超低功耗以及灵活性等 ...
- boost库:多线程
1.线程管理 最重要的一个类是boost::thread,是在boost/thread.hpp里定义的,用来创建一个新线程. #include <boost/thread.hpp> #in ...
- qt学习 (五) 登陆界面之连接按钮
登陆步骤是比对输入的账号密码与数据库中的表项目是否一致 一样, 跳出mainwidget对话框 不一样,跳出消息错误框 今天就是要进去, 因为进去以后是widget的窗口,所以把用来核对消息的数据库 ...