求 C++11 书籍推荐

2017-02-25 16:37:21 +08:00
 xuboying
c/c++是大家上学时候都有可能学到的课程,我那时候学了本不正宗的教程,一直把有类的 c 当成 c++的全部,后来看了别人的教程才知道不会 vector 就是在坐井观天。后来看了 Scott Meyers 大神的高效 C++等一系列书籍后才知道 c++程序的工程化写法

最近看了 sm 大神的现代 c++中英文对照以后,对 c++11 又有了粗浅的认识。但是看了 http://en.cppreference.com/w/ 的网站后又有一种 sm 大神的现代 c++也是个加智能指针的 c++03 。
cppreference 上大量的 ctti(compilier time type information)没有很好的展开。 cppreference 又只是一个工具网站。

没有给出观点类的用法指导。有没有类似 sm 大神风格,描述 c++11 ctti 方面的书呢?最好是有中英对照的

顺便吐槽一下
看了 c++11 以后发现 perl , js 都是非常易读的语言
perl 说我$多, js 说我{}多, lisp 说我()多, python 说我 tab 多,现在 c++可以挺起腰板说我<>多。。。
3236 次点击
所在节点    C
24 条回复
introom
2017-02-25 16:43:46 +08:00
sm 是什麼?

書?看 Lippmann 的 primer 就行。


讀個幾遍吧,再多加實踐,差不多了。

其他就看語言規範, x64 abi, 夠了。
kindjeff
2017-02-25 17:09:57 +08:00
怎么能用 tab 呢
saberlion
2017-02-25 17:16:32 +08:00
Meyers 大神的 effective modern c++
xuboying
2017-02-25 17:23:08 +08:00
@introom sm 是指 Scott Meyers 。 c++11 到 c++17 之间的 stl 新用法, primer 涉及的不多,也许我看的不是最新版。而且 primer 和 cppreference 没有什么观点性的内容,就是个陈述。哪里是坑要我自己去填。我只想站在巨人的肩膀上写我想写的代码,而不是让巨人教我怎么成为巨人。。。
xuboying
2017-02-25 17:24:46 +08:00
@saberlion emc++我有中英文版。这个只是纯语法,对 stl 的大量新功能讲的不多,也许出书的时候,还没有确定语法, sm 大神也还没啥具体工程经验?
xuboying
2017-02-25 17:25:17 +08:00
@kindjeff 必须 4 空格 tab (我不信你是按 4 下 space 按出来的)
visionsmile
2017-02-25 17:25:33 +08:00
基础语法推荐 The C++ Programming Language 4th ,其实和 C++ Primer 5th 互有长短吧...有时间的话可以都看看......
我之前简单地写过两本书的区别:http://imzlp.me/posts/4367/
visionsmile
2017-02-25 17:26:30 +08:00
@xuboying TC++PL 上册是讲语法,下册讲 STL 。
golmic
2017-02-25 17:50:35 +08:00
难道不是 C++ Primer
easing
2017-02-25 18:01:46 +08:00
我平时工作用的大多是 C++,话说 11 里用的最多的语法就是 auto 、右值引用和 move 语义。其它比如 lambda 或者 constexpr 等用的很少,多写就行了,为啥要专门看书?
xuboying
2017-02-25 18:07:03 +08:00
@easing 这说明我们写的东西不同而已,我遇到的问题主要是编译时模板类型鉴定,这块没法像运行时一样设断点,打印等方式调试,编译器报错的地方和我的代码差了十万八千里,很多都在标准库里面,我希望系统的了解一下这些新 stl 的语法的坑。
xuboying
2017-02-25 18:09:32 +08:00
@golmic 真正学成 primer 的可以成为大师了,不过我觉得我不是大师的料,只是能粗浅的理解而已(遇到坑还会毫不犹豫的跳进去的程度)。
thekll
2017-02-25 18:10:51 +08:00
Although the C++ Standard Library and the STL share many features, neither is a strict superset of the other.
visionsmile
2017-02-25 18:38:50 +08:00
对了,如果你主要是想了解 STL 库那些...就读 TC++PL 4th 下册和 The C++ Standard Library:A Tutorial and Reference ,第二版也是 C++11 的。
canautumn
2017-02-26 03:04:11 +08:00
既能包括 C++的所有功能,又不能是工具书而是娓娓道来那种的,能有这种好事?我也想知道。
srlp
2017-02-26 03:32:59 +08:00
c++ primer 通读一遍就好了,然后当词典查
linux40
2017-02-26 08:08:20 +08:00
c++ prime 又不是神,只能是够入门,能到上面所吹嘘的程度还差的远呢。
introom
2017-02-26 11:23:40 +08:00
@xuboying 你回复说的例子,纯粹是搭积木呀。所谓 C++11 , C++14 , 还是 17 ,你要担心的,可能就是多的语法,而不是语法糖呀。比方说, C++17 语言规范的 8.5 章节,引入了[dcl.decomp].

从 C++98 以后,新加了多少东西? 我的感觉是没有太多,该有的 primer 里都说到了,而且高屋建瓴,让你少走弯路。
从 C++98 以后,删了多少东西? 那倒是很多,比如 export, 比如 auto_ptr, 比如 throw exception spec.
从 C++98 以后,小变了多少东西?有一些,不过都很细微,比如 default argument for function template parameter

不管怎么变,编译的模型没变, separate translation.,, multiphase of translation, 再考虑我前面说的, Itanium C++ ABI, 你觉得能在本质上变化多少?
包括反反复复终于可能要被加入 draft 的 concepts ,几十年前 bjarne 早就提了呀。
所以真正新的东西,不多,很少。

本质上,你要提高 C++,不如理解清楚 C++98 以及之前的东西。

@linux40 够了。以及上面也没有人在吹嘘什么呀。
gaodq
2017-02-26 12:05:22 +08:00
看 rocksdb
lishunan246
2017-02-26 13:28:13 +08:00
我看过的一些
基础: C++ Primer
一些人生经验: Effective C++, Effecitve Modern C++
一些编译器的具体实现: C++对象模型
os 相关: Linux/Unix 系统编程手册,Windows 核心编程
模板: C++ Templates, 你说的 ctti 大概是这里面的一些东西,感觉 C++11 并没有在模版方面有大的改动,这本书应该还没有过气

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/343110

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX