本文节选自一篇讨论c++20新特性的英文博客,原文由CSDN news新闻资讯主编翻译并发布:

https://blog.csdn.net/csdnnews/article/details/86386281

https://blog.csdn.net/csdnnews/article/details/86386281

过去在我们Unity,我们有一句玩笑,“你敢向代码库中添加Boost你就等着被开除吧”。我想这不是真的,因为我发现去年某个时候Boost.asio被加进了代码库,自那以后我对于编译速度极慢抱怨了很多次,因为include <asio.h>头文件会导致include 整个的<windows.h>头文件,而include这个头文件会导致“ macro name hijack”错误

一般来说,我们努力避免使用大多数STL。容器我们也用我们自己的,这样做的原因和创建EASTL是一样的:

  • 不同平台/不同编译器下的行为更加一致,
  • 非优化Build的性能更好,
  • 更好地与我们自己的memory allocator和Tracking相集成,
  • 其他一些容器,纯粹是出于性能原因(STL的unordered_map设计上快不起来,因为它要求是separately chained;而我们自己的哈希表使用开放寻址)。
  • 大部分的标准库功能我们根本用不上。

然而。要说服每一位新员工(尤其是那些刚刚大学毕业的初级员工)需要时间,不能仅仅因为它被称为“Modern C++”就并不意味着它会更好, 也不能因它是C就意味着它很难理解、使用或者有很多bug。

就在几周前的工作中,我试图读懂我们自己写的一段代码,但是由于代码太复杂我实在理解不了它。我正在百无聊赖时,一位(初级)程序员过来问我,为什么我看起来像要焉了一样,我告诉他“我看不懂这段代码,对我来说它太复杂了。”他的第一反应是“哦,是旧式的C代码?”“不,恰恰相反!”我回答。因为我正在看的代码是某种template metaprogramming。这位初级程序员还没有接触到大型代码库,既没有用过C也没有用过C++,但有些东西已经让他相信“难以理解的”肯定是C代码。我怀疑现在的大学班级里都会直接说“C不好”,而不会解释到底是怎么回事;但这确实给未来的年轻程序员留下了这样的印象。

所以,我当然可以忽略C++中我不喜欢的那部分。但是,教育我现在的同事是很烦人的,因为许多人认为“现代的肯定就更好”或者“标准库就肯定比我们自己写的任何东西都好”。


本文节选自一篇讨论c++20新特性的英文博客,原文由CSDN news主编翻译并发布:

https://blog.csdn.net/csdnnews/article/details/86386281

https://blog.csdn.net/csdnnews/article/details/86386281

节选转载:你敢向代码库中添加Boost你就等着被开除吧相关推荐

  1. Android 核心已经从 Linux kernel 代码库中删除

    Greg Kroah-Hartman Novell 的开发人员,他主要负责维护 Linux 操作系统的启动,USB和驱动核心,近日他表示谷歌 Android 系统的驱动核心 已经从 Linux ker ...

  2. 代码恐怖故事:隐藏在复杂代码库中的恐怖秘密

    本文讲述了开发者们在复杂代码库中工作的经历和教训,包括代码复杂性带来的问题.架构决策.第三方库引发的意外问题以及令人恐慌的编程错误,以及如何处理这些挑战. 原文链接:https://digma.ai/ ...

  3. 高翔博士SLAMBOO2十二讲代码库中的三方库没有下载下来 ,需要手动对三方库单独下载的git的命令如下

    高翔博士SLAMBOO2十二讲代码库中的三方库没有下载下来 git clone --recursive https://github.com/gaoxiang12/slambook2.git 需要手动 ...

  4. 警惕开源代码库中的安全隐患

    最近的一项研究发现, 在调查的31个流行库(框架)的1261个版本中,超过三分之一存在已知的安全漏洞,大约四分之一的下载文件已经被污染. 该项研究由Aspect Security和Sonatype发起 ...

  5. linux怎么删除代码库,是否有从代码库中删除第三方C和C库的好技巧或工具? (OS X或Linux)...

    我正在减少和隔离我对某些库的使用.我编写的许多现有程序直接使用这些库.我想要编译器(在这种情况下是GCC和/或Clang)或一些工具来帮助我识别我的代码库中的这些用法.简而言之,我想在代码库中毒害这些 ...

  6. git回退历史版本无法上传_Git系列教程(二):版本库中添加文件、版本回退

    Git系列教程(一):简介.安装.配置我们学习了分布式和版本控制系统的概念.Git具有的8个功能以及如何在Windows上安装Git.进行相关配置并创建版本库. Git版本库中添加文件 Git 的工作 ...

  7. 计算机库里怎样添加桌面,小编教你win7中如何在库中添加桌面

    一些win7的用户为了操作的方便快捷,习惯了使用库来对系统进行一系列的操作,为此,也想要在库中添加一个桌面,文件的原始路径不会改变,库中的文件也不会额外占用磁盘空间,但是不知道该怎么去添加,为了帮助到 ...

  8. Altium Designer 往元件库中添加新元件

    Altium Designer 往元件库中添加新元件 首先,在元件官网找到所需元件的封装信息 各个公司的官网网址: Analog Device: https://www.analog.com/cn/i ...

  9. 计算机下面添加桌面,电脑系统教程_win7中如何在库中添加桌面

    库是win7系统借鉴Ubuntu操作系统而推出的文件管理模式.库的概念并非传统意义上的存放用户文件的文件夹,它其实是一个强大的文件管理器.那么win7如何在库中添加桌面呢?为了大家更加方便的去管理桌面 ...

最新文章

  1. Google 发布 Cloud AutoML 降低机器学习门槛,调参民工前景堪忧
  2. RabbitMQ创建远程连接用户
  3. 手机是怎么确定位置信息的?
  4. 2019计算机开机号003期,2019年011期福彩中心开机号(附汇总)
  5. html伸缩布局,CSS3 伸缩布局(一)
  6. Jeecg-P3 1.0.1版本发布,轻量级微服务框架
  7. 解决关闭hbase时stop-hbase.sh报错stopping hbasecat: /tmp/hbase-xxxx-master.pid: No such file or directory
  8. C语言学习笔记---001C语言的介绍,编译过程原理,工具等
  9. 106页《Python进阶》中文版介绍分享
  10. 【Qt开发】StyleSheet使用总结
  11. 最好的git教程,没有之一
  12. Linux脚本实战之SSH执行远端脚本
  13. Linux中常用查看日志命令
  14. 【暑期每日一题】洛谷 P6437 [COCI2011-2012#6] JACK
  15. NVIDIA Jetson Xavier NX部署VINS-fusion-GPU
  16. 问题——Word中一级标题离页眉很近
  17. 微信小程序-如何引入地图组件及显示当前所在位置
  18. 第一章 Java简介
  19. 分辨率1080P、2K、4K、8K的含义和区别
  20. 进入BeOS的花花世界 系列五

热门文章

  1. 使用ros2d.js实现web端导航
  2. 七牛云存储,图片储存
  3. Map的使用和遍历方法示例
  4. 指针01:指针的定义与使用
  5. 力扣——字符串转换整数 (atoi)
  6. 大佬是如何实现本地通讯的?
  7. 海康相机回调方式理一下
  8. THREEJS - 自定义曲线绘制
  9. python之使用numpy实现从二维数组中找出行(子数组)为特定值的索引
  10. 如何和在桌面上添加计算机,怎么在电脑桌面上添加便签?