[ Top | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | Bottom]
- #define macros
- Evil but sometimes useful ... [32.4], [33.5], [33.6]
- Evil! ... [9.5], [29.11], [30.3], [39.4], [39.5], [39.6]
- Prefer const vs. #define ... [29.7]
- See also Inline functions ... [9.1], [9.5], [28.2], [30.3], [32.4], [33.5], [33.6]
- With if ... [39.4]
- With multiple lines ... [39.5]
- With token pasting ... [39.6]
- #include
- ?: operator ... [27.6]
- ! operator (bang!) ... [29.13]
- "Think" is not a four-letter word ... [6.16]
- ## = token pasting ... [39.6]
"A" [ Top | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | Bottom]
- A form of type safety (Const correctness) ... [18.2]
- A2PS (see Pretty printing) ... [40.3]
- ABC (see also Inheritance) ... [22.2], [22.3]
- Abstract (Meaningwise) state vs. Concrete (Bitwise) state ... [18.10], [18.11]
- Abstract functions ... [20.6], [22.3], [22.4]
- Access rules
- protected and private inheritance ... [24.6]
- protected and private members ... [19.5], [19.6]
- Acronym "FAQ" ... [6.18]
- Acronyms ... [5.1]
- Ada vs. C++ ... [6.5]
- Addition operator: operator+ ... [13.1]
- Address-of operator: operator& ... [16.25]
- Advertised behavior, contracts ... [21.11], [21.12]
- AFAICS (Acronym) ... [5.1]
- Aggregation (see also Composition) ... [24.2]
- Air vehicle (example) ... [25.5]
- Algorithm selection, Serialization and ... [36.2]
- Aliasing of const and non-const pointers (Const correctness) ... [18.15]
- Aliasing
- All Terrain Vehicle (ATV) ... [30.5]
- All; One size does not fit all ... [6.16], [6.17], [9.3], [18.8], [18.9], [19.8], [23.3], [25.2], [25.3], [29.7], [29.11], [36.2], [36.3], [36.5], [36.6]
- Amphibious vehicle (example) ... [25.7]
- ANSI ... [6.12]
- Answers, Not Just Questions (in the FAQ) ... [6.18]
- Anything: Container of Thing vs. of Anything ... [21.3]
- Apple: Bag of Apple vs. of Fruit ... [21.3]
- Arenas, memory ... [11.14]
- Arithmetic operators (see also Operator overloading) ... [13.9]
- Arithmetic, floating point ... [29.17]
- Arithmetic, Pointer ... [8.7], [11.14], [13.9], [13.13], [21.4], [23.12], [31.7], [34.3]
- Arity ... [13.7]
- Arrays
- Artistic Style (see Pretty printing) ... [40.3]
- Ask the right questions
- Don't trust an answer from someone who hasn't heard the real question ... [25.2]
- On multiple inheritance ... [25.5], [25.7]
- What should be used ... [18.8], [18.9]
- When/where to invest your time ... [19.9]
- Who will create them ... [19.8]
- Why using a try block here ... [17.13]
- Assigning a reference ... [8.2]
- Assignment operator (see also Operator overloading) ... [12], [22.5]
- Assignment operator ... [12]
- Associative array ... [34.2]
- Associativity ... [13.7]
- atoi() ... [39.2]
- Attachments on postings: don't! ... [5.4]
- ATV ... [30.5]
- Author ... [1.1]
- auto_ptr ... [17.4], [23.6]
- Avoid catch-by-pointer (usually) (see also under Exceptions) ... [17.7], [17.8]
- Avoid catch-by-value (see also under Exceptions) ... [17.7]
- Avoiding an overabundance of try/catch blocks (see also under Exceptions) ... [17.13]
- Avoiding code duplication ... [35.9]
- Avoiding decision logic ... [20.6]
"B" [ Top | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | Bottom]
- Backtracking ... [5.3]
- Bad input, ignoring (input/output) ... [15.3]
- Bad programming practices ... [6.15]
- Arrays ... [16.17], [17.5], [21.5], [34.1]
- Casting Derived** → Base** ... [21.2]
- Casting Foo** → const Foo** ... [18.17]
- Casting pointers ... [16.25], [18.17], [21.2], [23.12], [27.11], [30.2], [30.3], [37.5]
- char* (use a string-like class instead) ... [13.6], [17.5]
- Converting array-of-Derived → kind-of Array-of-Base ... [21.4]
- Derived** → Base**, Casting ... [21.2]
- Explicitly calling destructors (sometimes okay) ... [11.10]
- Explicitly calling destructors on local objects ... [11.5], [11.6]
- Foo** → const Foo**, Casting ... [18.17]
- Hiding inherited public features ... [21.1], [21.6], [21.7], [21.8], [21.9], [23.9]
- Macros ... [9.5], [29.11], [30.3], [39.4], [39.5], [39.6]
- Missing virtual on some base class dtors ... [20.7]
- Mixing malloc() and delete ... [16.3]
- Mixing new and free() ... [16.3]
- Mixing new T[n] with delete p ... [16.12], [16.13], [26.11]
- Mixing realloc() and new ... [16.5]
- Passing array-of-Derived as array-of-Base ... [21.4], [21.5]
- Pointer casts ... [16.25], [18.17], [21.2], [23.12], [27.11], [30.2], [30.3], [37.5]
- Preprocessor ... [29.8]
- Unnecessary global variables ... [33.2], [39.8]
- bad_alloc (see also under Exceptions) ... [16.6], [16.7]
- Bag of Apple vs. of Fruit ... [21.3]
- Bang (!) operator ... [29.13]
- Base class ... [19.3]
- Basics (Const correctness) ... [29.6]
- Basics of templates (see also under Templates) ... [35.1]
- Beautifier, Code (see Pretty printing) ... [40.3]
- Behavior: Advertised vs. implemented ... [21.11], [21.12]
- Behavioral equivalence (see also Operator overloading) ... [13.9]
- Beliefs, naive/wrong
- "Always" and "Never" rules ... [23.3]
- "Evil" things should never be used ... [6.15]
- Always name numeric literals ... [29.11]
- Friendship breaks encapsulation ... [14.2]
- inline functions always improve performance ... [9.3]
- Methods always better than friend-functions ... [15.9]
- Multi-line macros simply use {...} ... [39.5]
- Never use #define ... [29.7]
- Never use multiple-inheritance ... [25.2], [25.3]
- protected data is evil ... [19.8]
- Software has rules that always apply ... [6.16]
- There exists a purely technical definition of "good" ... [6.17]
- Token-pasting doesn't require two levels of macros ... [39.6]
- Big Picture Issues ... [6]
- Business-centricity vs. Techno-centricity ... [6.5]
- C++ is a practical tool ... [6.1]
- C++ is not a perfect tool ... [6.2]
- Length of time needed to learn OO/C++ ... [6.7]
- Size of the installed base ... [6.6]
- Some advantages of Generic Programming ... [6.4]
- Some advantages of OO ... [6.3]
- Standardization of C++ ... [6.12], [6.13]
- Big Three, Law of ... [16.17], [22.5], [27.10]
- Binary compatibility between vendors ... [38.9]
- Binary format mechanics, Serialization and ... [36.6]
- Binary format tradeoffs, Serialization and ... [36.3]
- Binary mode (input/output) ... [15.13]
- Binary mode for opening streams ... [15.12]
- Binary mode for std::cin and std::cout ... [15.13]
- Binary mode on MS-DOS (input/output) ... [15.12]
- Bind Dynamically During Initialization Idiom ... [23.6]
- Binding: Static vs. dynamic ... [20.2], [20.3], [20.4]
- Bits per byte ... [26.4], [26.5], [26.6]
- Bitwise (Concrete) state vs. Meaningwise (Abstract) state ... [18.10], [18.11]
- Bizarre syntax: use only when you must ... [27.14]
- Bjarne Stroustrup's web site ... [29.4]
- Bloat of code ... [9.3]
- Book (see C++ FAQ Book) ... [3]
- Books ... [28]
- boolalpha ... [35.8]
- Borland free C++ compiler ... [38.1]
- Bosnian translation of this document ... [2.3]
- Braces: whitespace standards ... [29.10]
- Bridge pattern ... [25.5]
- British Informatics Olympiad ... [29.2]
- Broken mindset (see also under Exceptions) ... [17.12], [17.13]
- BTW (Acronym) ... [5.1]
- Bugs, subtle ... [6.15]
- Arrays ... [16.17], [17.5], [21.5], [34.1]
- Casting Derived** → Base** ... [21.2]
- Casting Foo** → const Foo** ... [18.17]
- Casting pointers ... [16.25], [18.17], [21.2], [23.12], [27.11], [30.2], [30.3], [37.5]
- char* (use a string-like class instead) ... [13.6], [17.5]
- Converting array-of-Derived → kind-of Array-of-Base ... [21.4]
- Derived** → Base**, Casting ... [21.2]
- Explicitly calling destructors (sometimes okay) ... [11.10]
- Explicitly calling destructors on local objects ... [11.5], [11.6]
- Foo** → const Foo**, Casting ... [18.17]
- Hiding inherited public features ... [21.1], [21.6], [21.7], [21.8], [21.9], [23.9]
- Macros ... [9.5], [29.11], [30.3], [39.4], [39.5], [39.6]
- Missing virtual on some base class dtors ... [20.7]
- Mixing malloc() and delete ... [16.3]
- Mixing new and free() ... [16.3]
- Mixing new T[n] with delete p ... [16.12], [16.13], [26.11]
- Mixing realloc() and new ... [16.5]
- Passing array-of-Derived as array-of-Base ... [21.4], [21.5]
- Pointer casts ... [16.25], [18.17], [21.2], [23.12], [27.11], [30.2], [30.3], [37.5]
- Preprocessor ... [29.8]
- Unnecessary global variables ... [33.2], [39.8]
- Build objects: constructors ... [10.1]
- Built-in (intrinsic, primitive) data types ... [26]
- Business criteria dominate technical criteria ... [6.5]
- Business issues dominate technical issues ... [6.17]
- By value
- Return-by-value optimization ... [10.9]
- Byte
"C" [ Top | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | Bottom]
- C language
- C++ books ... [28]
- C++ compiler
- C++ FAQ Book ... [3]
- Is much bigger than this Lite document ... [3.2]
- ISBN ... [3.1]
- Not same as the on-line ("Lite") document ... [3.2]
- URL for Amazon.com ... [3.1]
- C++ FAQ Lite ... [3]
- Author ... [1.1]
- Availability on-line ... [2]
- Book is much bigger ... [3.2]
- Bosnian translation ... [2.3]
- Chinese (Mainland/GB encoding) translation ... [2.4]
- Chinese (Taiwan/Big5 encoding) translation ... [2.4]
- Copy permissions ... [1]
- Copying permissions ... [1.3]
- Copyright notice ... [1.2]
- Croatian translation ... [2.3]
- French translation ... [2.5]
- Greek translation ... [2.6]
- Mirror WWW sites ... [2.1]
- No Warranty ... [1.4]
- Not same as C++ FAQ Book ... [1.6], [3.2]
- Polish translation ... [2.7]
- Portuguese translation ... [2.8]
- Recent changes ... [4]
- Russian translation ... [2.9]
- Serbian translation ... [2.3]
- Turkish translation ... [2.10]
- C++ Keywords
- catch ... [17.1]
- class ... [7.1], [7.8]
- const ... [13.9], [18.1]
- const_cast ... [18.13]
- delete ... [13.10], [16.9], [16.11], [16.12], [16.14], [16.15], [38.7]
- explicit ... [20.7]
- export ... [35.14]
- extern ... [32], [32.3]
- for ... [39.8]
- if ... [17.1]
- inline ... [9.1], [9.6], [9.7], [9.9], [39.13]
- mutable ... [18.13]
- new ... [16.1], [16.4], [16.5], [16.11]
- operator ... [13.4]
- private ... [7.4], [7.6], [24]
- protected ... [7.4], [24]
- public ... [7.8]
- sizeof ... [26.1], [26.2], [26.5], [26.6]
- struct ... [7.1], [7.8]
- template ... [35.14]
- this ... [10.7]
- throw ... [17.1], [17.9]
- try ... [17.1]
- typeid ... [34.4]
- typename ... [16.18], [16.19], [35.2], [35.3], [35.4], [35.12], [35.13]
- using ... [23.9], [27.5]
- virtual ... [16.24], [17.10], [20.7], [25.9]
- C++ Libraries FAQ ... [37.9]
- C++ to C conversion ... [38.13]
- C++2LaTeX (see Pretty printing) ... [40.3]
- C-Clearly (see Pretty printing) ... [40.3]
- Cache Misses
- Calling base-class member functions using :: ... [20.5]
- Calling member functions defined in my base class ... [20.5]
- Calling Virtuals During Initialization Idiom ... [23.6]
- Can randomly expose errors; Multi-threading and ... [16.2]
- Can't invent new operators (see also Operator overloading) ... [13.7]
- Can't replace behavior on built-in operators (see also Operator overloading) ... [13.6], [26.10]
- Car and Truck example ... [20.6]
- Car: Parking lot of Car vs. of Vehicle ... [21.3]
- Casting Derived** → Base**, evilness of ... [21.2]
- Casting Foo** → const Foo**, evilness of ... [18.17]
- Casting pointers, evilness of ... [16.25], [18.17], [21.2], [23.12], [27.11], [30.2], [30.3], [37.5]
- catch keyword ... [17.1]
- Catch-by-pointer, avoid (usually) (see also under Exceptions) ... [17.7], [17.8]
- Catch-by-value, avoid (see also under Exceptions) ... [17.7]
- catch ... [17]
- Avoid catch-by-pointer (usually) ... [17.7], [17.8]
- Avoid catch-by-value ... [17.7]
- Avoiding an overabundance of try/catch blocks ... [17.13]
- Broken mindset ... [17.12], [17.13]
- Catch-by-pointer, avoid (usually) ... [17.7], [17.8]
- Catch-by-value, avoid ... [17.7]
- Compared to return-codes and if ... [17.1]
- Constructors can throw exceptions ... [17.2]
- Copy ctor must be publicly accessible ... [17.11]
- Destructors ... [11.13], [17.3]
- Eliminate some if statements ... [17.1]
- Example of throw; to re-throw current exception ... [16.10], [17.5], [38.7], [38.8]
- Example of try ... catch ... [16.10], [17.5], [38.7], [38.8]
- Inherit your own exception classes (ultimately) from std::exception ... [17.6]
- Member objects should be self-managing ... [17.4]
- Mindset, right and wrong ... [17.12], [17.13]
- Number of copies made internally ... [17.11]
- Polymorphically throwing ... [17.10]
- Publicly accessible copy constructor ... [17.11]
- RAII (Resource Acquisition Is Initialization) ... [6.18], [17.12], [17.13]
- RRID (Resource Reclamation Is Destruction) ... [6.18]
- Stack unwinding ... [11.13], [17.3]
- std::bad_alloc ... [16.6], [16.7]
- std::runtime_error ... [17.6]
- throw ... [16.6], [16.7]
- throw; (without an exception-object after the throw keyword) ... [17.9]
- Throwing polymorphically ... [17.10]
- What to catch ... [17.7]
- What to throw ... [17.6]
- Wrong mindset ... [17.12], [17.13]
- Caveats, Serialization and ... [36.12]
- Ccdoc ... [40.1]
- ccdoc: a javadoc-like tool ... [40.1]
- Cfront C++ compiler ... [38.13]
- Chaining method calls ... [8.4], [10.18]
- Changes to this document ... [4]
- Changing the screen's colors ... [15.21]
- char* (use a string-like class instead), evilness of ... [13.6], [17.5]
- char: Defined ... [26.3], [26.4]
- char: Not necessarily the same as "character" ... [26.3]
- char: sizeof(char) is 1 ... [26.1]
- Character not necessarily the same as char ... [26.3], [26.4]
- Chinese (Mainland/GB encoding) translation of this document ... [2.4]
- Chinese (Taiwan/Big5 encoding) translation of this document ... [2.4]
- Choosing between integer sizes ... [29.5]
- Choosing member-functions vs. friend-functions ... [14.5]
- Choosing the best Serialization technique ... [36.2]
- Chopped copies ... [17.7], [17.10], [20.8], [22.5], [31.8], [34.4]
- Circles vs. Ellipses ... [21.6], [21.7], [21.8], [21.9], [21.10], [21.11]
- Circular dependencies ... [39.11]
- class keyword ... [7.1], [7.8]
- Class template is a family of classes (see also under Templates) ... [35.2], [35.12]
- Class templates ... [35.2], [35.12], [35.15]
- clear() and std::istream (input/output) ... [15.3]
- Clearing the screen ... [15.20]
- clone() methods ... [16.24], [20.8], [22.5]
- clrscr() ... [15.20]
- Code bloat ... [9.3]
- Code duplication, Avoiding ... [35.9]
- Coding standards (see also Operator overloading) ... [27.10]
- Coding standards concerning (Const correctness) ... [27.10]
- Coding standards ... [27]
- Assignment operators check assignment-to-self ... [12.1], [27.10]
- Assignment operators return *this ... [27.10]
- Assignment operators use const ... [27.10]
- Avoid arrays ... [16.17], [17.5], [21.5], [34.1]
- Avoid bizarre syntax ... [27.14]
- Avoid casting Derived** → Base** ... [21.2]
- Avoid casting Foo** → const Foo** ... [18.17]
- Avoid casting pointers ... [16.25], [18.17], [21.2], [23.12], [27.11], [30.2], [30.3], [37.5]
- Avoid char* (use a string-like class instead) ... [13.6], [17.5]
- Avoid converting array-of-Derived → kind-of Array-of-Base ... [21.4]
- Avoid Derived** → Base**, Casting ... [21.2]
- Avoid dynamically typed libraries ... [37.5]
- Avoid explicitly calling destructors (sometimes okay) ... [11.10]
- Avoid explicitly calling destructors on local objects ... [11.5], [11.6]
- Avoid Foo** → const Foo**, Casting ... [18.17]
- Avoid hiding inherited public features ... [21.1], [21.6], [21.7], [21.8], [21.9], [23.9]
- Avoid hiding nested identifiers ... [39.8]
- Avoid macros ... [9.5], [29.11], [30.3], [39.4], [39.5], [39.6]
- Avoid missing virtual on some base class dtors ... [20.7]
- Avoid mixing malloc() and delete ... [16.3]
- Avoid mixing new and free() ... [16.3]
- Avoid mixing new T[n] with delete p ... [16.12], [16.13], [26.11]
- Avoid mixing realloc() and new ... [16.5]
- Avoid overabundance of try/catch blocks ... [17.13]
- Avoid passing array-of-Derived as array-of-Base ... [21.4], [21.5]
- Avoid pointer casts ... [16.25], [18.17], [21.2], [23.12], [27.11], [30.2], [30.3], [37.5]
- Avoid preprocessor ... [29.8]
- Avoid unnecessary global variables ... [33.2], [39.8]
- Avoid zombie objects ... [17.2]
- Bloodshed, Jihads, and Heat vs. Light ... [27.1]
- Coding standards are never sufficient ... [27.2]
- Coding standards are sometimes necessary ... [27.2]
- const_cast ... [18.13]
- Constructors should throw exceptions on failure ... [17.2]
- Copy constructors use const ... [27.10]
- Declare near first use ... [27.7]
- Design classes from the outside-in ... [13.13]
- Don't base C++ standards on C standards ... [27.3], [34.1]
- Don't test for NULL after new ... [16.6]
- Don't test for NULL before delete ... [16.8]
- Explicitly calling destructors (don't!) ... [11.9]
- Header filename extensions ... [27.9]
- Identifier naming conventions ... [27.12]
- Initialization lists ... [10.6], [26.8], [27.10]
- Law of the Big Three ... [16.17], [27.10]
- Macros that contain if ... [39.4]
- Macros that contain multiple lines ... [39.5]
- Macros that perform token pasting ... [39.6]
- main() returns int, not void ... [5.8], [29.3]
- Multiple inheritance ... [25.4]
- Never throw exceptions from a dtor ... [17.3]
- Operator overloading ... [27.10]
- Prefer ++i over i++ ... [13.15]
- Source filename extensions ... [27.8]
- static at file-scope (don't!) ... [7.5]
- The Ellemtel coding guidelines ... [27.13]
- Todd Hoff's coding guidelines ... [27.13]
- Use a std::string object rather than a char* ... [13.6], [17.5]
- Use delete[] for arrays ... [16.12]
- Use of the ternary ?: operator ... [27.6]
- virtual destructors ... [20.7], [27.10]
- Whitespace pseudo-standards ... [29.10]
- Coding-Standard books on C++ ... [27.1], [27.13]
- Colors: changing the screen's ... [15.21]
- Column-major order ... [13.11], [13.12]
- Combinations ... [5.3]
- Comma operator (see also Operator overloading) ... [13.9]
- Committee Draft (CD) for ANSI/ISO C++ ... [6.13]
- comp.lang.c++
- Acronyms ... [5.1]
- Don't answer FAQs ... [5.6]
- Don't post job ads ... [5.10]
- Don't post resumés ... [5.11]
- FAQs for other newgroups ... [5.14]
- How to handle off-topic postings ... [5.12]
- How to post code ... [5.8]
- Netiquette ... [5.4]
- Not for homework problems ... [5.2]
- Spam ... [5.13]
- Subject