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),特特别是还没出校门没有正式工作经验的,找个实习很难,前些天接了个面试电话,上来就质疑我“你一个在校大学生怎么可能做了那么多项 ...
随机推荐
- Debug your ASP.NET Application while Hosted on IIS
转摘:http://www.codeproject.com/Articles/37182/Debug-your-ASP-NET-Application-while-Hosted-on-IIS This ...
- kubernetes容器集群部署Flannel网络
Overlay Network:覆盖网络,在基础网络上叠加的一种虚拟网络技术模式,该网络中的主机通过虚拟链路连接起来. VXLAN:将源数据包封装到UDP中,并使用基础网络的IP/MAC作为外层报文头 ...
- Provider
import React from 'react';import PropTypes from 'prop-types'; class Provider extends React.Component ...
- 最新版的node安装和配置注意事项
node在安装的时候,如果你不想用默认的安装路径,可以自定义路径进行安装,例如我的安装路径如下:F:\Program Files\nodejs 安装完成后,要对node进行配置: 在F:\Progra ...
- 2018-2-13-win10-UWP-显示地图
title author date CreateTime categories win10 UWP 显示地图 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17: ...
- css3 实现可以中英切换的导航条
html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <ti ...
- js对象的深度拷贝
//判断对象的类型 Array Object Function String Number ..... function getObjType(obj){ return Object.prototyp ...
- POJ1149PIGS
传送门 貌似是最大流建图优化入门题(可惜我还是不会) 最暴力的建图当然是源点连每个猪圈然后猪圈需要拆成n个点分给每个人这个必定是跑不过的 所以我们可以进行优化 很明显没有被动过的猪圈一直是不变的可以不 ...
- Python中的try-finally
>>> try: ... raise KeyboardInterrupt ... finally: ... print('Goodbye, world!') ... Goodbye, ...
- SCP-bzoj-1019
项目编号:bzoj-1019 项目等级:Safe 项目描述: 戳这里 特殊收容措施: 对于一个hanoi,知道了各种移动操作的优先级,也就确定了方案.可以证明对于盘子数为N的hanoi,任意移动方案都 ...