
Imperfect C++ : practical solutions for real-life programming /
副标题:无
作 者:Matthew Wilson = 不完美的C++ / (美)维尔逊著
分类号:
ISBN:9787115149817
微信扫一扫,移动浏览光盘
简介
即便是c++阵营里最忠实的信徒,也不得不承认:c++语言并不完美。实际上,世界上也没有完美的编程语言。.
如何克服c++类型系统的不足?在c++中,如何利用约束、契约和断言来实施软件设计?如何处理被c++标准所忽略的动态库、静态对象以及线程等有关的问题?隐式转换有何替代方案?本书将为你一一解答这些问题。针对c++的每一个不完美之处,本书都具体地分析原因,并探讨实用的解决方案。书中也不乏许多作者创新的、你从未听说过或使用的技术,但这些确实能帮助你成为c++方面的专家。..
本书适合有一定经验的c++程序员和项目经理阅读,也适合对c++编程的一些专门或高级话题感兴趣的读者参考。
本书特色:
1.本书不仅指出了c++的缺失,更为编写健壮、灵活、高效,可维护的代码提供了实用的技术和工具。
2.本书展示了如何克服c++的复杂性,穿越c++庞大的范式阵列,夺回对代码的控制权,从而获得更理想的结果。
...
目录
partonefundamentals
chapter1 enforcingdesign:constraints,contracts,andassertions
1.1 eggsandham
1.2 compile-timecontracts:constraints
1.3 runtimecontracts:preconditions,postconditions,andinvariants
1.4 assertions
chapter2 objectlifetime
2.1 theobjectlifecycle
2.2 controllingyourclients
2.3 milsandboon
chapter3 resourceencapsulation
3.1 ataxonomyofresourceencapsulation
3.2 podtypes
3.3 wrapperproxies
3.4 rridtypes
3.5 raiitypes
3.6 rahcoda
chapter4 dataencapsulationandvaluetypes
4.1 ataxonomyofdataencapsulation
4.2 valuetypesandentitytypes
.4.3 ataxonomyofvaluetypes
4.4 opentypes
4.5 encapsulatedtypes
4.6 valuetypes
4.7 arithmeticvaluetypes
4.8 valuetypescoda
4.9 encapsulationcoda
chapter5 objectaccessmodels
5.1 vouchedlifetimes
5.2 copiedforcaller
5.3 giventocaller
5.4 sharedobjects
chapter6 scopingclasses
6.1 value
6.2 state
6.3 apisandservices
6.4 languagefeatures
parttwosurvivingtherealworld
chapter7abi
7.1 sharingcode
7.2 cabirequirements
7.3 c++abirequirements
7.4 icancclearlynow
chapter8 objectsacrossborders
8.1 mostlyportablevtables?
8.2 portablevtables
8.3 abi/oabcoda
chapter9 dynamiclibraries
9.1 callingfunctionsexplicitly
9.2 indentity:linkunitsandlinkspace
9.3 lifetime
9.4 versioning
9.5 resourceownership
9.6 dynamiclibraries:coda
chapter10 threading
10.1 synchronizingintegeraccess
10.2 synchronizingblockaccess:criticalregions
10.3 atomicintegerperformance
10.4 multithreadingextensions
10.5 threadspecificstorage
chapter11 statics
11.1 nonlocalstaticobjects:globals
11.2 singletons
11.3 function-localstaticobjects
11.4 staticmembers
11.5 staticscoda
chapter12 optimization
12.1 inlinefunctions
12.2 returnvalueoptimization
12.3 emptybaseoptimization
12.4 emptyderivedoptimization
12.5 preventingoptimization
partthreelanguageconcerns
chapter13 fundamentaltypes
13.1 mayihaveabyte?
13.2 fixed-sizedintegertypes
13.3 largeintegertypes
13.4 dangeroustypes
chapter14 arraysandpointers
14.1 don'trepeatyourself
14.2 arraysdecayintopointers
14.3 dimensionof0
14.4 cannotpassarraystofunctions
14.5 arraysarealwayspassedbyaddress
14.6 arraysofinheritedtypes
14.7 cannothavemultidimensionalarrays
chapter15 values
15.1 null---thekeywordthatwasn't
15.2 downtozero
15.3 bendingthetruth
15.4 literals
15.5 constants
chapter16keywords
16.1 interface
16.2 temporary
16.3 owner
16.4 explicit(_cast)
16.5 unique
16.6 final
16.7 unsupportedkeywords
chapter17 syntax
17.1 classlayout
17.2 conditionalexpressions
17.3 for
17.4 variablenotation
chapter18 typedefs
18.1 pointertypedefs
18.2 what'sinadefinition?
18.3 aliases
18.4 treetypedefs
18.5 thegood,thebad,andtheugly
partfourcognizantconversions
chapter19 casts
19.1 implicitconversion
19.2 castinginc++
19.3 thecaseforccasts
19.4 castsonsteroids
19.5 explicit_cast
19.6 literal_cast
19.7 union_cast
19.8 comstl::interface_cast
19.9 boost::polymorphic_cast
19.10 casts:coda
chapter20 shims
20.1 embracingchangeandenhancingflexibility
20.2 attributeshims
20.3 logicalshims
20.4 controlshims
20.5 conversionshims
20.6 compositeshimconcepts
20.7 namespacesandkoeniglookup
20.8 whynottraits?
20.9 structuralconformance
20.10 breakingupthemonolith
20.11 shims:coda
chapter21 veneers
21.1 lightweightrah
21.2 bindingdataandoperations
21.3 rubbinguptoconcepts
21.4 veneers:coda
chapter22 bolt-ins
22.1 addingfunctionality
22.2 skinselection
22.3 nonvirtualoverriding
22.4 leveragingscope
22.5 simulatedcompile-timepolymorphism:reversebolt-ins
22.6 parameterizedpolymorphicpackaging
22.7 bolt-ins:coda
chapter23 templateconstructors
23.1 hiddencosts
23.2 danglingreferences
23.3 templateconstructorspecialization
23.4 argumentproxies
23.5 argumenttargeting
23.6 templateconstructors:coda
partfiveoperators
chapter24 operatorbool0
24.1 operatorintocoast
24.2 operatorvoid*0const
24.3 operatorbool0const
24.4 operator!()---not!
24.5 operatorbooleanconst*0const
24.6 operatorintboolean::*()const
24.7 operatingintherealworld
24.8 operator!
chapter25 fast,non-intrusivestringconcatenation
25.1 fast_string_concatenator[]
25.2 performance
25.3 workingwithotherstringclasses
25.4 concatenationseeding
25.5 pathologicalbracing
25.6 standardization
chapter26 what'syouraddress?
26.1 can'tgettherealaddress
26.2 whatactionsarecarriedoutduringconversion?
26.3 whatdowereturn?
26.4 what'syouraddress:coda
chapter27subscriptoperators
27.1 pointerconversionversussubscriptoperators
27.2 handlingerrors
27.3 returnvalue
chapter28 incrementoperators
28.1 missingpostfixoperators
28.2 efficiency
chapter29arithmetictypes
29.1 classdefinition
29.2 defaultconstruction
29.3 initialization(valueconstruction)
29.4 copyconstruction
29.5 assignment
29.6 arithmeticoperators
29.7 comparisonoperators
29.8 accessingthevalue
29.9 sinteger64
29.10 truncations,promotions,andtests
29.11 arithmetictypes:coda
chapter30short-circuit!
partsixextendingc++
chapter31returnvaluelifetime
31.1 ataxonomyofreturnvaluelifetimegotchas
31.2 whyreturn-by-reference?
31.3 solution1--integer_to_string[]
31.4 solution2--tss
31.5 solution3---extendingrvl
31.6 solution4-staticarraysizedetermination
31.7 solution5--conversionshims
31.8 performance
31.9 rvl:thebigwinforgarbagecollection
31.10 potentialapplications
31.11 returnvaluelifetime:coda
chapter32memory
32.1 ataxonomyofmemory
32.2 thebestofbothworlds
32.3 allocators
32.4 memory:coda
chapter33multidimensionalarrays
33.1 facilitatingsubscriptsyntax
33.2 sizedatruntime
33.3 sizedatcompiletime
33.4 blockaccess
33.5 performance
33.6 multidimensionalarrays:coda
chapter34 functorsandranges
34.1 syntacticclutter
34.2 for_all0?
34.3 localfunctors
34.4 ranges
34.5 functorsandranges:coda
chapter35properties
35.1 compilerextensions
35.2 implementationoptions
35.3 fieldproperties
35.4 methodproperties
35.5staticproperties
35.6 virtualproperties
35.7 propertyuses
35.8 properties:coda
appendixacompilersandlibraries
a.1 compilers
a.2 libraries
a.3 otherresources
appendixb"watchthathubris!"
b.1 operatoroverload
b.2 dryruedyesterday
b.3 paranoidprogramming
b.4 toinsanity,andbeyond!
appendixcarturius
appendixdthecd
epilogue
bibliography
index...
chapter1 enforcingdesign:constraints,contracts,andassertions
1.1 eggsandham
1.2 compile-timecontracts:constraints
1.3 runtimecontracts:preconditions,postconditions,andinvariants
1.4 assertions
chapter2 objectlifetime
2.1 theobjectlifecycle
2.2 controllingyourclients
2.3 milsandboon
chapter3 resourceencapsulation
3.1 ataxonomyofresourceencapsulation
3.2 podtypes
3.3 wrapperproxies
3.4 rridtypes
3.5 raiitypes
3.6 rahcoda
chapter4 dataencapsulationandvaluetypes
4.1 ataxonomyofdataencapsulation
4.2 valuetypesandentitytypes
.4.3 ataxonomyofvaluetypes
4.4 opentypes
4.5 encapsulatedtypes
4.6 valuetypes
4.7 arithmeticvaluetypes
4.8 valuetypescoda
4.9 encapsulationcoda
chapter5 objectaccessmodels
5.1 vouchedlifetimes
5.2 copiedforcaller
5.3 giventocaller
5.4 sharedobjects
chapter6 scopingclasses
6.1 value
6.2 state
6.3 apisandservices
6.4 languagefeatures
parttwosurvivingtherealworld
chapter7abi
7.1 sharingcode
7.2 cabirequirements
7.3 c++abirequirements
7.4 icancclearlynow
chapter8 objectsacrossborders
8.1 mostlyportablevtables?
8.2 portablevtables
8.3 abi/oabcoda
chapter9 dynamiclibraries
9.1 callingfunctionsexplicitly
9.2 indentity:linkunitsandlinkspace
9.3 lifetime
9.4 versioning
9.5 resourceownership
9.6 dynamiclibraries:coda
chapter10 threading
10.1 synchronizingintegeraccess
10.2 synchronizingblockaccess:criticalregions
10.3 atomicintegerperformance
10.4 multithreadingextensions
10.5 threadspecificstorage
chapter11 statics
11.1 nonlocalstaticobjects:globals
11.2 singletons
11.3 function-localstaticobjects
11.4 staticmembers
11.5 staticscoda
chapter12 optimization
12.1 inlinefunctions
12.2 returnvalueoptimization
12.3 emptybaseoptimization
12.4 emptyderivedoptimization
12.5 preventingoptimization
partthreelanguageconcerns
chapter13 fundamentaltypes
13.1 mayihaveabyte?
13.2 fixed-sizedintegertypes
13.3 largeintegertypes
13.4 dangeroustypes
chapter14 arraysandpointers
14.1 don'trepeatyourself
14.2 arraysdecayintopointers
14.3 dimensionof0
14.4 cannotpassarraystofunctions
14.5 arraysarealwayspassedbyaddress
14.6 arraysofinheritedtypes
14.7 cannothavemultidimensionalarrays
chapter15 values
15.1 null---thekeywordthatwasn't
15.2 downtozero
15.3 bendingthetruth
15.4 literals
15.5 constants
chapter16keywords
16.1 interface
16.2 temporary
16.3 owner
16.4 explicit(_cast)
16.5 unique
16.6 final
16.7 unsupportedkeywords
chapter17 syntax
17.1 classlayout
17.2 conditionalexpressions
17.3 for
17.4 variablenotation
chapter18 typedefs
18.1 pointertypedefs
18.2 what'sinadefinition?
18.3 aliases
18.4 treetypedefs
18.5 thegood,thebad,andtheugly
partfourcognizantconversions
chapter19 casts
19.1 implicitconversion
19.2 castinginc++
19.3 thecaseforccasts
19.4 castsonsteroids
19.5 explicit_cast
19.6 literal_cast
19.7 union_cast
19.8 comstl::interface_cast
19.9 boost::polymorphic_cast
19.10 casts:coda
chapter20 shims
20.1 embracingchangeandenhancingflexibility
20.2 attributeshims
20.3 logicalshims
20.4 controlshims
20.5 conversionshims
20.6 compositeshimconcepts
20.7 namespacesandkoeniglookup
20.8 whynottraits?
20.9 structuralconformance
20.10 breakingupthemonolith
20.11 shims:coda
chapter21 veneers
21.1 lightweightrah
21.2 bindingdataandoperations
21.3 rubbinguptoconcepts
21.4 veneers:coda
chapter22 bolt-ins
22.1 addingfunctionality
22.2 skinselection
22.3 nonvirtualoverriding
22.4 leveragingscope
22.5 simulatedcompile-timepolymorphism:reversebolt-ins
22.6 parameterizedpolymorphicpackaging
22.7 bolt-ins:coda
chapter23 templateconstructors
23.1 hiddencosts
23.2 danglingreferences
23.3 templateconstructorspecialization
23.4 argumentproxies
23.5 argumenttargeting
23.6 templateconstructors:coda
partfiveoperators
chapter24 operatorbool0
24.1 operatorintocoast
24.2 operatorvoid*0const
24.3 operatorbool0const
24.4 operator!()---not!
24.5 operatorbooleanconst*0const
24.6 operatorintboolean::*()const
24.7 operatingintherealworld
24.8 operator!
chapter25 fast,non-intrusivestringconcatenation
25.1 fast_string_concatenator[]
25.2 performance
25.3 workingwithotherstringclasses
25.4 concatenationseeding
25.5 pathologicalbracing
25.6 standardization
chapter26 what'syouraddress?
26.1 can'tgettherealaddress
26.2 whatactionsarecarriedoutduringconversion?
26.3 whatdowereturn?
26.4 what'syouraddress:coda
chapter27subscriptoperators
27.1 pointerconversionversussubscriptoperators
27.2 handlingerrors
27.3 returnvalue
chapter28 incrementoperators
28.1 missingpostfixoperators
28.2 efficiency
chapter29arithmetictypes
29.1 classdefinition
29.2 defaultconstruction
29.3 initialization(valueconstruction)
29.4 copyconstruction
29.5 assignment
29.6 arithmeticoperators
29.7 comparisonoperators
29.8 accessingthevalue
29.9 sinteger64
29.10 truncations,promotions,andtests
29.11 arithmetictypes:coda
chapter30short-circuit!
partsixextendingc++
chapter31returnvaluelifetime
31.1 ataxonomyofreturnvaluelifetimegotchas
31.2 whyreturn-by-reference?
31.3 solution1--integer_to_string[]
31.4 solution2--tss
31.5 solution3---extendingrvl
31.6 solution4-staticarraysizedetermination
31.7 solution5--conversionshims
31.8 performance
31.9 rvl:thebigwinforgarbagecollection
31.10 potentialapplications
31.11 returnvaluelifetime:coda
chapter32memory
32.1 ataxonomyofmemory
32.2 thebestofbothworlds
32.3 allocators
32.4 memory:coda
chapter33multidimensionalarrays
33.1 facilitatingsubscriptsyntax
33.2 sizedatruntime
33.3 sizedatcompiletime
33.4 blockaccess
33.5 performance
33.6 multidimensionalarrays:coda
chapter34 functorsandranges
34.1 syntacticclutter
34.2 for_all0?
34.3 localfunctors
34.4 ranges
34.5 functorsandranges:coda
chapter35properties
35.1 compilerextensions
35.2 implementationoptions
35.3 fieldproperties
35.4 methodproperties
35.5staticproperties
35.6 virtualproperties
35.7 propertyuses
35.8 properties:coda
appendixacompilersandlibraries
a.1 compilers
a.2 libraries
a.3 otherresources
appendixb"watchthathubris!"
b.1 operatoroverload
b.2 dryruedyesterday
b.3 paranoidprogramming
b.4 toinsanity,andbeyond!
appendixcarturius
appendixdthecd
epilogue
bibliography
index...
Imperfect C++ : practical solutions for real-life programming /
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!
