Compare commits

...

3 Commits

Author SHA1 Message Date
Federico
9ccb6a3e93 Improved "How to Compile" and fixed typos
Preparation:
- Improved "How to Compile" section. Added warning and sanitizer flags
2026-01-09 10:49:00 -08:00
Federico
5acb136141 Update 28.Binary_Size.pdf
Fixes #200
2026-01-09 10:04:36 -08:00
Federico
d84f87751c Update README.md 2026-01-09 10:00:51 -08:00
6 changed files with 16 additions and 3 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -50,7 +50,14 @@ This *open-access* course is directed at those who are already familiar with C a
1. Move from Latex to [Typst](https://typst.app/).
2. Fully-open source the material and allow direct contribution.
3. LLM-assisted editing for readability improvements.
## Table of Contents
- [Chapters](#chapters)
- [Topics in Details](#topics-in-details)
- [Reporting Bugs 🐛 and Contributing](#reporting-bugs--and-contributing)
- [Where the Course has been used](#where-the-course-has-been-used)
- [Author](#author)
## CHAPTERS
@ -352,7 +359,7 @@ Font for coding.
- **Compiler and Linker Techniques**: Optimization flags, Debugging and runtime information flags, Symbol visibility, Exceptions flags, Linker flags, Link-Time Optimization (LTO), CMake support.
- **Coding Aspects**: Function Inlining, Function Visibility, Templates, Static Storage Duration, Linkage, Polymorphic classes, Exceptions, Header Inclusion.
- **Binary Size Tools**: `nm` and `objdump`, `Bloaty`, Executable packer.
-
**[29. Build Time](29.Build_time.pdf)**
- **Compile Time Introduction**: The importance of build time, Causes of long build time.
@ -367,10 +374,16 @@ Font for coding.
- **Other Aspects**: C++20 modules, Overload resolution, other code aspects, Pointer Implementation (PIMPL), Include guard vs. `#pragma once`, Static vs. dynamic linking, Comments and formatting, External factors.
- **Tools to Analyze Build Time**: Clang build-time analysis, `ninjatracing`, `Templight`, `Build Bench`, Visual Studio - `CompileScore`, Visual Studio - `C++ Build Insights`.
### Reporting bugs 🐛 and contributing
## Reporting Bugs 🐛 and Contributing
If you find any typo, conceptual error, or section to improve, please report it using the `Issues` panel.
## Where the Course has been used
The **Modern C++ Programming** course was created in 2018 and adopted by the [University of Verona](https://www.univr.it/en/university), Italy. It is taught as part of the Bachelor's and Master's degree programmes in Computer Science, for three and two years respectively. The course has also been used to train interns at NVIDIA.
*Have you adopted the course, or are you interested in using it in certain contexts?* If so, please get in touch so that I can keep track of usage. I'm also willing to share the LaTeX source code (the Tyst version will be open-sourced on GitHub soon).
## Author
`Federico Busato`, [federico-busato.github.io](https://federico-busato.github.io/)