April 2022 - Update 3

Translation Units (sections 1-8):
    - Refactored description flow
    - Many improvements and clarifications
    - Several typos fixed
    - const/constexpr does not imply static
    - template variables have external linkage even if specialized
This commit is contained in:
Federico
2022-04-23 12:27:55 -07:00
parent d1fbd64a62
commit 76e3861f9e
2 changed files with 5 additions and 4 deletions

Binary file not shown.

View File

@ -120,10 +120,11 @@ If you enjoy the course or you find it useful, please add a **Star**
* **Basic Concepts**: Translation unit, Local and global scope, Linkage * **Basic Concepts**: Translation unit, Local and global scope, Linkage
* **Storage Class and Duration**: Storage duration, Storage class, `static` and `extern` keywords, Internal/External linkage examples, Linkage of `const` and `constexpr`, Static Initialization Order Fiasco * **Storage Class and Duration**: Storage duration, Storage class, `static` and `extern` keywords, Internal/External linkage examples, Linkage of `const` and `constexpr`, Static Initialization Order Fiasco
* **Dealing with Multiple Translation Units**: One Definition Rule (ODR), `inline` functions/variables, Class in multiple translation units, Global variable issues * **Dealing with Multiple Translation Units**: Class in multiple translation units
* **Function Template** * **One Definition Rule (ODR)**: Global variable issues,`inline` functions/variables
* **Class Template** * **Function Template**: Cases, `extern` keyword
* **ORD and Undefined Behavior** * **Class Template**: Cases, `extern` keyword
* **ODR and Undefined Behavior**
* **`#include` Issues**: Forward declaration, Include guard, Circular dependencies, Common linking errors * **`#include` Issues**: Forward declaration, Include guard, Circular dependencies, Common linking errors
* **Namespace**: Namespace functions vs. `static` methods, Namespace alias, Anonymous namespace, `inline` namespace * **Namespace**: Namespace functions vs. `static` methods, Namespace alias, Anonymous namespace, `inline` namespace
* **How to Compile**: Compile strategies, Deal with libraries, Build static/dynamic libraries, Find dynamic library dependencies, Analyze object/executable symbols * **How to Compile**: Compile strategies, Deal with libraries, Build static/dynamic libraries, Find dynamic library dependencies, Analyze object/executable symbols