C++ FAQ
/ Topics beginning with 'T'
Recent changes - 11 changed FAQs.
In a list,
or in a chain,
or here:
[4.1],
[4.2],
[6.3],
[6.12],
[10.3],
[15.22],
[27.15],
[35.13],
[35.14],
[35.15],
[39.6].
Translated into 16 languages.
English,
Belorussian / Minsk,
Bosnian / Serbian / Croatian,
Bulgarian,
Chinese (GB, Mainland),
Chinese (Big5, Taiwan),
French,
German,
Greek,
Korean,
Polish,
Portuguese,
Romanian,
Russian,
Spanish,
Turkish.
Mirrored in 11 countries.
USA,
France,
Germany,
Ireland,
Israel,
Italy,
Poland,
Portugal,
Spain,
Taiwan,
U.K..
|
C++ FAQ topics beginning with 'T'
[ 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
]
- Tabs: whitespace standards ...
[29.10]
- Techi-Warehouse ...
[5.9]
- Techie Weenie ...
[6.5],
[9.9]
- Technical criteria are dominated by business criteria ...
[6.5]
- Technical issues, Dominated by business issues ...
[6.17]
- Techniques, Bad ...
[6.15]
- Arrays ...
[16.17],
[17.11],
[21.5],
[34.1]
- Casting Derived** → Base** ...
[21.2]
- Casting Foo** → Foo const** ...
[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.11]
- 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** → Foo const**, 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]
- Unnecessary use of "dumb" pointers ...
[34.6]
- template keyword ...
[35.14]
- Template Proxy (see also under Templates) ...
[35.22]
- Template Typedef proposal (see also under Templates) ...
[35.22]
- Templates ...
[35]
- Basics of templates ...
[35.1]
- Class template is a family of classes ...
[35.2],
[35.12]
- Compile-time ...
[35.10]
- Deducing template types ...
[35.4]
- Definition vs. declaration ...
[35.12],
[35.13],
[35.14],
[35.15]
- Dependent member-names ...
[35.19],
[35.20]
- Dependent type-names ...
[35.18],
[35.20]
- export keyword ...
[35.14],
[35.15]
- Forward declarations ...
[39.14]
- Friend functions ...
[35.16]
- Function overloading and ...
[35.11]
- Function template is a family of functions ...
[35.3],
[35.4],
[35.12]
- Genericity ...
[35.6]
- Multi-dimensional arrays ...
[16.18],
[16.19]
- Nondependent member-names ...
[35.19],
[35.20]
- Nondependent type-names ...
[35.18],
[35.20]
- Overloading and ...
[35.11]
- Parameterized types ...
[35.5]
- Performance ...
[35.10]
- Proxy Template ...
[35.22]
- Run-time performance ...
[35.23]
- SFINAE (Substitution Failure Is Not An Error) ...
[35.11]
- Specialization ...
[35.7],
[35.8]
- Specialization of part of a function ...
[35.9]
- Speed ...
[35.10]
- Substitution Failure Is Not An Error ...
[35.11]
- Template Proxy ...
[35.22]
- Template Typedef proposal ...
[35.22]
- Templates of Templates ...
[35.21]
- Type Inference ...
[15.22]
- typename keyword ...
[16.18],
[16.19],
[35.2],
[35.3],
[35.4],
[35.12],
[35.13],
[35.15],
[37.3],
[39.3]
- Using with built-in/intrinsic types ...
[13.1]
- Templates of Templates (see also under Templates) ...
[35.21]
- terminate() ...
[17.9]
- Terminology, Precise use of ...
[9.9]
- Ternary operator: ?: ...
[27.6]
- TeX macros for "C++" ...
[40.2]
- Text format mechanics, Serialization and ...
[36.5]
- Text format tradeoffs, Serialization and ...
[36.3]
- Text mode; translations of end-of-line sequences ...
[15.12],
[15.13]
- tgrind (see Pretty printing) ...
[40.3]
- The Correct C++ Tutorial ...
[29.21]
- The good of the many outweighs the good of the few ...
[23.3]
- Thing: Container of Thing vs. of Anything ...
[21.3]
- Thirty-two bit bytes (on some machines) ...
[26.6]
- This document ...
[3]
- this keyword ...
[10.7]
- this used in constructors ...
[10.7]
- this() ...
[10.3]
- Thrashing in demand-paged virtual-memory systems ...
[9.3]
- Threading, Multi
- Can randomly expose errors ...
[16.2]
- Performance tradeoffs ...
[36.12]
- Reader/writer conflicts ...
[36.12]
- Writer/writer conflicts ...
[36.12]
- throw (see also under Exceptions) ...
[16.6],
[16.7]
- throw ...
[17]
- Avoid catch-by-pointer (usually) ...
[17.13],
[17.14]
- Avoid catch-by-value ...
[17.13]
- Avoiding an overabundance of try/catch blocks ...
[17.7]
- Broken mindset ...
[17.6],
[17.7]
- Catch-by-pointer, avoid (usually) ...
[17.13],
[17.14]
- Catch-by-value, avoid ...
[17.13]
- Compared to return-codes and if ...
[17.1],
[17.2]
- Constructors can throw exceptions ...
[17.8]
- Copy ctor must be publicly accessible ...
[17.17]
- Destructors ...
[11.13],
[17.9]
- DIRR (Destruction Is Resource Reclamation) ...
[6.18]
- Eliminate some if statements ...
[17.1]
- Example of throw; to re-throw current exception ...
[16.10],
[17.11],
[38.7],
[38.8]
- Example of try ... catch ...
[16.10],
[17.11],
[38.7],
[38.8]
- Free lunch...NOT! ...
[17.5]
- Inherit your own exception classes (ultimately) from std::exception ...
[17.12]
- Member objects should be self-managing ...
[17.10]
- Mindset, right and wrong ...
[17.6],
[17.7]
- Not one-size-fits-all ...
[17.5]
- Number of copies made internally ...
[17.17]
- Panacea...NOT! ...
[17.5]
- Polymorphically throwing ...
[17.16]
- Publicly accessible copy constructor ...
[17.17]
- RAII (Resource Acquisition Is Initialization) ...
[6.18],
[17.6],
[17.7]
- Requires discipline and rigor ...
[17.5]
- RRID (Resource Reclamation Is Destruction) ...
[6.18]
- Separate the "good (happy) path" from the "bad path" ...
[17.4]
- Simplify function return types and parameter types ...
[17.3]
- Simplify propagating the error information up the stack ...
[17.2]
- Stack unwinding ...
[11.13],
[17.9]
- std::bad_alloc ...
[16.6],
[16.7]
- std::runtime_error ...
[17.12]
- throw ...
[16.6],
[16.7]
- throw; (without an exception-object after the throw keyword) ...
[17.15]
- Throwing polymorphically ...
[17.16]
- What to catch ...
[17.13]
- What to throw ...
[17.12]
- Whipping boy for the weak ...
[17.5]
- Wrong mindset ...
[17.6],
[17.7]
- throw keyword ...
[17.1],
[17.15]
- throw; (without an exception-object after the throw keyword) (see also under Exceptions) ...
[17.15]
- Throwing polymorphically (see also under Exceptions) ...
[17.16]
- Thumb, Rules of ...
[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.11],
[21.5],
[34.1]
- Avoid bizarre syntax ...
[27.14]
- Avoid casting Derived** → Base** ...
[21.2]
- Avoid casting Foo** → Foo const** ...
[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.11]
- 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** → Foo const**, 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.7]
- 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 unnecessary use of "dumb" pointers ...
[34.6]
- Avoid zombie objects ...
[17.8]
- 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.8]
- 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.9]
- 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.11]
- Use delete[] for arrays ...
[16.12]
- Use of the ternary ?: operator ...
[27.6]
- virtual destructors ...
[20.7],
[27.10]
- Whitespace pseudo-standards ...
[29.10]
- to-string conversion; stringify() ...
[35.8],
[39.1],
[39.3]
- To-the-power-of operator** (Can't!) ...
[13.7]
- Todd Hoff's coding guidelines ...
[27.13]
- toDouble() ...
[39.2]
- ## = token pasting ...
[39.6]
- Token pasting via ## ...
[39.6]
- Token-pasting via NAME2() macro ...
[39.6]
- Tokenizing ...
[36.8]
- Tools that generate HTML documentation ...
[40.1]
- Tools that help you understand error messages ...
[35.17]
- Top-posting: don't! ...
[5.4]
- Trademarks ...
[1.5]
- Tradeoff matrix for Multiple Inheritance ...
[25.6]
- Training ...
[6.7]
- Transitivity: Friendship privileges are not ...
[14.4]
- Translation of the C++ FAQ
- Translations of end-of-line sequences in text mode ...
[15.12],
[15.13]
- Trees of objects (definition), Serialization and ...
[36.13]
- Truck and Car example ...
[20.6]
- try ...
[17]
- Avoid catch-by-pointer (usually) ...
[17.13],
[17.14]
- Avoid catch-by-value ...
[17.13]
- Avoiding an overabundance of try/catch blocks ...
[17.7]
- Broken mindset ...
[17.6],
[17.7]
- Catch-by-pointer, avoid (usually) ...
[17.13],
[17.14]
- Catch-by-value, avoid ...
[17.13]
- Compared to return-codes and if ...
[17.1],
[17.2]
- Constructors can throw exceptions ...
[17.8]
- Copy ctor must be publicly accessible ...
[17.17]
- Destructors ...
[11.13],
[17.9]
- DIRR (Destruction Is Resource Reclamation) ...
[6.18]
- Eliminate some if statements ...
[17.1]
- Example of throw; to re-throw current exception ...
[16.10],
[17.11],
[38.7],
[38.8]
- Example of try ... catch ...
[16.10],
[17.11],
[38.7],
[38.8]
- Free lunch...NOT! ...
[17.5]
- Inherit your own exception classes (ultimately) from std::exception ...
[17.12]
- Member objects should be self-managing ...
[17.10]
- Mindset, right and wrong ...
[17.6],
[17.7]
- Not one-size-fits-all ...
[17.5]
- Number of copies made internally ...
[17.17]
- Panacea...NOT! ...
[17.5]
- Polymorphically throwing ...
[17.16]
- Publicly accessible copy constructor ...
[17.17]
- RAII (Resource Acquisition Is Initialization) ...
[6.18],
[17.6],
[17.7]
- Requires discipline and rigor ...
[17.5]
- RRID (Resource Reclamation Is Destruction) ...
[6.18]
- Separate the "good (happy) path" from the "bad path" ...
[17.4]
- Simplify function return types and parameter types ...
[17.3]
- Simplify propagating the error information up the stack ...
[17.2]
- Stack unwinding ...
[11.13],
[17.9]
- std::bad_alloc ...
[16.6],
[16.7]
- std::runtime_error ...
[17.12]
- throw ...
[16.6],
[16.7]
- throw; (without an exception-object after the throw keyword) ...
[17.15]
- Throwing polymorphically ...
[17.16]
- What to catch ...
[17.13]
- What to throw ...
[17.12]
- Whipping boy for the weak ...
[17.5]
- Wrong mindset ...
[17.6],
[17.7]
- try keyword ...
[17.1]
- Turkish translation of this document ...
[2.16]
- Turning off keyboard "echo" ...
[15.18]
- Tutorials
- The Correct C++ Tutorial ...
[29.21]
- Type Inference (see also under Templates) ...
[15.22]
- Type safety
- Comparison with Smalltalk ...
[30.2]
- Const correctness ...
[18.2]
- Static vs. dynamic typing ...
[20.2]
- typedef
- Use them when declaring member-function pointers ...
[33.5]
- typeid keyword ...
[34.4]
- typename keyword (see also under Templates) ...
[16.18],
[16.19],
[35.2],
[35.3],
[35.4],
[35.12],
[35.13],
[35.15],
[37.3],
[39.3]
- typename keyword ...
[16.18],
[16.19],
[35.2],
[35.3],
[35.4],
[35.12],
[35.13]
|