《C 設計新思維》評價和勘誤及問題

2021-04-01 18:40:48 字數 3162 閱讀 3907

c++設計新思維》評價和勘誤及問題

advanced c++ design

-的中譯本

andrei alexandrescu 著侯捷

於春景譯

華中科技大學出版社

這本書後面時間的緣故,已經沒有認真,因此本文章僅大致作為記錄,謝絕參考!

評價:書的內在是一本好書,講了很多的設計策略和如何使用模板來進行設計。但是,書中的表達方式我就不敢恭維了。侯捷,居然還算是乙個名作家,不管是他翻譯還是審校,都有不可推卸的責任:書中到處都有不符合語法規則的表達,到處都是不通順的語句。不過,他好像還對此非常自豪,我呸!我的建議是:看看《人月神話》的翻譯,侯捷就該回去學學小學生漢語。

因為下面的原因,裡面的內容不一定準確和完整:

1、最前面的

3個章節看得很早;

2、最後面的

4個章節看得很匆忙,因為沒時間了,圖書館的書,時間到了,要還;

3、中間有很多地方看得不夠認真,因為需要的時候可以再查。

勘誤部分

:p12 1.6

節:typedef widgetmanager< prototypecreator >mywidgetmanager;

中模板prototypecreator

沒有引數;

p13 1.7

節:policies

只能用來被繼承(保護析構函式)

p14 1.9

節:threading model

(多執行緒模型)

->thread model(

執行緒模型)

實作->

實現p18

:extendwidgetclass -> extendedwidgetclass

p20

:降低相依性

->

見地依賴性

p20:

因應設計的多樣性

-> 考慮/

兼顧設計的多樣性

p21 line8

:容器->

協調器p21 reverse line1

:更動->

變化p23

:外覆類

->

包裝類p24 reverse line1

:端視->

而視p29 reverse line9

:才知道

->

就已經知道

p29 reverse line8

:泛形->

泛型p32 line4

:多載化(過載

) ->

過載p34 reverse line4

:模板具現

->

模板例項化

p43 line10

:刪除「

isstdfloat||

」p37 const

可以兩次,但

reference

不允許p43

p44 line16

:刪除「這玩意兒」

p45 line14

:last—first -> last – first

p43 reverse line2 isprimitive

和p45 reverse line17

、18 isstdstandard

都沒有,並且表達的東西應該一致

p46 line6

:刪除「

int2type

」p46 line16

:缺少引數

result

p48 line5

:裁製->

定製p74 line6

:mueventhandler -> widgeteventhandler

p77line4~6

:邏輯p80 reverse line14

、reverse line16

:array

(譯註:基類是

vector

)錯誤p91 line12

:polymorphic

錯誤p100 line8

:「虛線」沒有

p103 reverse line6

:「windows

」-> 「windows」

p142 line5~7

:p143 reverse line2~3

:alloc -> malloc

p268 reverse line22

:增加乙個引數

class typeslhs

p278 reverse line18

:增加「

class」

問題部分:p7

:無法特化結構指什麼

模板內定義成員,成員未其子類,則產生無限迴圈(類模板不能有非指標成員?)

p15:

提供乙個名為

lock

的內部型別

使用:typename threadingmodel::lock guard(*this)

p18

:assignment

操作符exceptional c++

條款41

p21

:型別轉型:構造(目

)和操作符(源

)都有時用哪乙個

p25:

template<> struct compiletimechecker{};

-> template<> struct compiletimechecker{}; (

整體實現,區域性特化)對應

(整體無實現,區域性特化)

p29 line5

:無具名的命名空間

p35 line4

:省屏中選

p42 line10

:template

struct ptomtraits

-> template

struct ptomtraits

p43

-p44

:**未反應排除

references to references

未使用isreference

p78

:pimpl

手法sutter2000 exceptional c++

c++

程式庫:

stl、

boost

、loki

、ace by

:kangtian0

C 設計新思維(1)

本文所有的例證 在reactos 0.3.14 include c stlport type traits有所展示,這是reactos專案中的stl庫檔案 編譯期assertion template to safe reinterpret cast from from 要保證轉型時安全的,那麼必須保...

C 設計新思維 pdf格式

侯捷 於春景 合譯 c 設計新思維泛型程式設計與設計正規化 之 應用 前三章內容簡介如下 第 篇 技術 techniques 1 第1章以policy為基礎的class設計 policy based class design 3 1.1 軟體設計的多樣性 multiplicity 3 1.2 全功能...

C 設計新思維的traits和policy

這篇部落格講得挺清楚的,本來想自己寫寫看總結下的,不過看了下這個文章已經寫得很清楚了,倒沒有必要了,總得來說,要了解traits和policy,需要了解下面這三個點 1.什麼是特化,什麼是偏特化 顧名思義,特化就是針對一些特殊的型別進行變化,畢竟c 的模板是什麼型別都能放進去的,但是有些型別就是比較...