C++ Modern C++

Stella981
• 阅读 740

        现代的C++,比较笼统。最近10多年的东西是否是现代的呢?我认为“时髦”这个词更准确一些。每个年代,时髦总是标新立异的,总是被年龄大一些的人看不惯的(虽然这些人也曾经“赶过时髦”)。Modern C++就是用最时髦的东西去装饰您的代码。但是本质的东西还是没有变。改革初期,最时髦的服饰是喇叭裤,霹雳舞手套。那时没有智能手机,时髦的人扛着一台卡带录音机招摇过市。我们来分析一下。喇叭裤穿着也就罢了,总要穿衣服出门才文明吧?可是像乔峰一样带着音响出场是几个意思?后来时代发展了,卡带录音机逐渐变小,出现便于携带式的随身听。为了不影响他人,出现了耳机这个配件。之后就是mp3播放器上市了,无线蓝牙耳机替代了绕脖子的音频线。智能手机出现后,mp3不见了踪影。时尚和技术在变化,不变的是什么? 是人们对文艺和音乐的追求。

       C++98 出现了模板和STL,带着这些东西上场的年轻人被老程序员侧目。std::map<int, std:: >::const_iterator ite = m.begin(); 是都是什么做派?世界上没有什么不能替代的东西,用C也能实现数据结构和算法。这没有任何问题,很多人一辈子也不习惯听着音乐到处跑(包括我)。C++11/14时代到来后,右值引用,lamda表达式,函数式编程,auto/decltype,  constexpr, 智能指针... 踊跃的出现,有什么用?如果当初没有去赶std::map<int, std:: >::const_iterator ite = m.begin();的时髦,自然对auto ite = m.begin();没有任何感觉。(从不用随身听的人,会理解mp3的好处吗?)。如果当初对大对象传递过程中,拷贝来拷贝去毫不怜惜效率的损失,自然对右值引用的出现无动于衷。C++就这点好处,思维停留在1950年代,在202z年代也能活的很好。用支持C++17/20的GCC编译器,编写纯C也毫无问题。穿着中山装,使用收音机和报纸接听新闻的人也能过的颇舒适。C++17又出现了constexpr if,fold expression, structured binding...那可好了,从未接触过enable_if,模板递归,tuple的程序员开始对此嗤之以鼻了,这些都是什么鬼?

       说这么多,就一个意思。不随身听音乐也就是罢;随身听音乐,就从大喇叭录音机一直跟到mp3和手机。时髦不跟也罢,跟时髦,就会一直跟下去。(时髦,现代)Modern C++不跟也罢,跟就一直跟下去吧。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这