
| C++虽然是一门非凡的语言,但并不完美。本书作者Matthew Wilson使用C++十年有余,其间发现C++存在一些固有的限制,需要一些颇具技术性的工作进行弥补。. 本书不仅指出了C++的缺失,更为编写健壮、灵活、高效、可维护的代码提供了实用的技术和工具。Wilson向读者展示了如何克服C++的复杂性,穿越C++庞大的范式阵列,夺回对代码的控制权,从而获得更理想的结果,... |
| Matthew Wilson是一名软件开发顾问,STL Soft库的创建者。他为双月刊C/C++Users Journal撰写关于将C/C++与其他语言和技术进行整合的专栏文章,同时也是C++ Experts Forum的在线专栏作家。Wilson在英国曼彻斯特大学获得了博士学位,有十余年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... |
商品评论(0条)