还记得2015年的时候,在下班回家的地铁上跟好朋友聊起C++11标准引入的一系列新特性,当时我已经学习过一阵这些有趣的新功能了,所以聊天的时候也是信手拈来,也就是这个时候朋友跟我提了一句,要不你去写一本书吧。虽然当时并没有把这句话放在心上,但是也算是在心中埋藏了一颗种子。
时间一晃就到了2017年,随着C++17标准的发布,C++又引入了一大批新特性,很多特性结合在一起甚至能写出“不太像C++代码”的错觉。另外,当时的国外已经诞生一批用新标准规范写的开源代码,这让我感觉到我们是不是有些落后了。于是乎,诞生了一个写一本有关C++新标准书籍的想法。其实,作为一个读书人,写一本书的想法一直都有,但是就是没有好的主题,当然动力有所不足。这次似乎是一个挺好的机会,那就动笔吧。就这样从2017年到2019年,每天都会在工作之余抽出一点点时间写写文字。因为第一次写书,所以刚开始写的时候文笔非常生硬,后面慢慢的熟练起来,不过目录的顺序并不是当时写书的顺序,所以读的时候会发现有的章节写的尚可,有的读起来生硬无比。虽然后来经过了一番修改,但是书中的问题肯定还是不少(发售之后也能找到不少拼写和错别字错误)。就这样,一直写到了C++20标准的草案接近完成,当时我就在想,总不能辛辛苦苦写的书,还没到发售就已经过时了吧?这可不行,于是改变计划,加入了C++20的内容。这一加,就写到了2020年的8月。
2020年8月,书的最后一个章节编写完毕。面对整篇书稿的完工,一方面是高兴兴奋,另一方面却也非常惶恐,因为要面临找出版社的考验了。虽然我对书的内容比较有信心,但是现在C++实在不是一门流行的技术了,至少招人方面已经很难招到合适的了。一个印象很深刻的事情是,我们家在饭桌讨论找出版社的事情,我的父母都表示肯定很难,让我如果找不到也不要伤心。我的爱人鼓励我说,“即使找不到出版社,这本书咱们自己花钱也要出出来”,这也是我当时的想法,不能让心血白费了,至少得有个结果。事实情况其实比我们想象的好很多,我在9月就找了国内一家计算机方面知名的出版社分社,开始讨论了一番以后发现对方对这本书的内容并没有太大兴趣,于是和这个出版社的联系就断了。10月份的时候找到另外一家知名出版社,也就是本书现在的出版社人民邮电出版社。当时出版社的陈编辑非常热情的给我介绍了如何申报图书出版的步骤,我也按照要求把资料提供了上去,大概过了一两周的样子,编辑告诉我出版社决定出版这本书,当时可把我高兴坏了。
从2020年10月到2021年9月,出版这本书整整花了一年的时候,从一审到三审,从一校到三校,还有申请ISBN编号,每一步我都想催着陈编辑快点做完,虽然每次催都特别不好意思,但是控制不住自己啊。幸好陈编辑每次都挺耐心的,真的很nice的人。在这一年期间,我遇到另外一个贵人是《软件调试》的作者张银奎老师,我和张老师认识的挺早的,大概就是《软件调试》刚刚出版后搞的一次书友会上认识的,有过一些交流,那个时候就记住了他的邮箱地址。这个邮箱地址可就发挥的重要作用了,当这本书需要一篇序的时候,我是第一时间想到了张银奎老师,想到了这个邮箱,于是就厚着脸皮发了一份邮件,请求张老师为本书作序,没想到的是张老师爽快的答应了,并且还邀请我做了一个课程。
就是这样,《现代C++语言核心特性解析》这本书在2021年的中秋节前上架了,一时感触非常多,想感谢很多人很多事,但是不知从哪里开始怎么开始,想来想去还是写一篇文章简单记录一下这段宝贵的过程好了,于是就有了这篇文章,大概就是这样了。