Table of contents for Exceptional C++ style : 40 new engineering puzzles, programming problems, and solutions / Herb Sutter.


Bibliographic record and links to related information available from the Library of Congress catalog. Note: Contents data are machine generated based on pre-publication provided by the publisher. Contents may have variations from the printed book or be incomplete or contain other coding.


Counter
Contents
Preface	9
Generic Programming and the C++ Standard Library	15
1.	Uses and Abuses of vector	16
2.	The String Formatters of Manor Farm, Part 1: sprintf	24
3.	The String Formatters of Manor Farm, Part 2: 
Standard (or Blindingly Elegant) Alternatives	30
4.	Standard Library Member Functions	42
5.	Flavors of Genericity, Part 1: Covering the Basis [sic]	46
6.	Flavors of Genericity, Part 2: Generic Enough?	50
7.	Why Not Specialize Function Templates?	57
8.	Befriending Templates	64
9.	Export Restrictions, Part 1: Fundamentals	74
10.	Export Restrictions, Part 2: Interactions, Usability Issues and Guidelines	84
Exception Safety Issues and Techniques	95
11.	Try and Catch Me	96
12.	Exception Safety: Is It Worth It?	101
13.	A Pragmatic Look at Exception Specifications	104
Class Design, Inheritance, and Polymorphism	113
14.	Order, Order!	114
15.	Uses and Abuses of Access Rights	118
16.	(Mostly) Private	124
17.	Encapsulation	133
18.	Virtuality	143
19.	Enforcing Rules for Derived Classes	153
Memory and Resource Management	165
20.	Containers In Memory, Part 1: Levels of Memory Management	166
21.	Containers In Memory, Part 2: How Big Is It Really?	170
22.	To new, Perchance To throw, Part 1: The Many Faces of new	178
23.	To New, Perchance To Throw, Part 2: 
Pragmatic Issues in Memory Management	187
Optimization and Efficiency	197
24.	Constant Optimization?	198
25.	inline Redux	204
26.	Data Formats and Efficiency, Part 1: When Compression is the Name of the Game	213
27.	Data Formats and Efficiency, Part 2: (Even Less) Bit-Twiddling	218
Traps, Pitfalls and Puzzlers	227
28.	Keywords That Aren't (or, Comments By Another Name)	228
29.	Is It Initialization?	235
30.	double or Nothing	241
31.	Amok Code	244
32.	Slight Typos? Graphic Language and Other Curiosities	249
33.	Operators, Operators Everywhere	253
Style Case Studies	259
34.	Index Tables	260
35.	Generic Callbacks	272
36.	Construction Unions	281
37.	Monoliths "Unstrung," Part 1: A Look at std::string	300
38.	Monoliths "Unstrung," Part 2: Refactoring std::string	306
39.	Monoliths "Unstrung," Part 3: std::string Diminishing	315
40.	Monoliths "Unstrung," Part 4: std::string Redux	319
Bibliography	329
Index	333




Library of Congress Subject Headings for this publication: