All Versions
10
Latest Version
Avg Release Cycle
114 days
Latest Release
156 days ago

Changelog History

  • v1.9.0 Changes

    January 06, 2026

    Main Changes

    • 🏗 Two new chapters related to build aspects: Build Size and Build Time.
    • Reorganized "Basic Concepts II" into two chapters, splitting integer and floating-point topics.

    Full Changelog

    Preparation :

    • 👌 Improved IDE/Editor section, added cursor and void.
    • ➕ Added C++ standard adoption (JetBrains Developer Ecosystem).
    • Listed C++ main conferences.

    Basic Concepts I :

    • 👌 Improved "Implicit Promotion" section.
    • ➕ Added special cases for ! and bitwise shift promotion.
    • 🛠 Fixed wrong case of undefined behavior in function evaluation.
    • ➕ Added float128 in the list of floating-point types.
    • ➕ Added numeric_limits example.
    • Specified two's complement in C++ for signed integer types.
    • Slightly improved the "Language Types" section organization.

    Basic Concepts II - Integer Types :

    • 🛠 Fixed usage of z suffix.
    • ➕ Added two small examples of undefined behavior.
    • 👌 Improved "Arithmetic Types - Promotion and Conversion Rules" section.
    • Slightly improved int/unisgned properties.
    • 👌 Improved "Undefined Behavior of Signed Integer" section.

    Basic Concepts II - Floating-Point Types :

    • 👌 Improved "IEEE floating-point and C++" introduction.
    • 🛠 Fixed "Inf Behavior" that leads to NaN (Special Values Behavior).
    • ⚡️ Updated IEEE754 visualization and converter links.

    Basic Concepts IV :

    • 👌 Improved description of attributes for lambda expressions.
    • Further clarification of constexpr evaluation.
    • ➕ Added [[indeterminate]] attribute.

    Basic Concepts V :

    • ➕ Added the alignof operator and improved the sizeof section.
    • ➕ Added C++26 constexpr relaxation.
    • ➕ Added a section for constexpr objects.
    • Fixed wrong structure size in [[no_unique_address]] section.
    • 👌 Improved "Structure initialization - brace or equal" section.
    • ➕ Added a section "Fixed-Size Arrays".

    Basic Concepts VI :

    • ➕ Added an example of C++23 lambda with the static call operator.
    • Explained how a lambda is translated into a function object.
    • Explained lambda trailing return type.
    • Explained the introduction of a new variable in the capture list of a lambda.
    • 👌 Improved constexpr lambda explanation in C++17.
    • 👍 Provided a better solution for "Preprocessing - Common Error 2".
    • 👌 Improved the "Macro" section.

    Object-Oriented Programming I :

    • 👌 Improved "Defaulted Constructors, Destructor, and Operators" section.
    • 0️⃣ Clarified noexcept behavior with defaulted = default methods.

    Object-Oriented Programming II :

    • Explained C++20 operator!= overloading behavior.

    Templates and Meta-programming I :

    • Described the difference between decltype(T{}+R{}) vs. std::common_type.

    Templates and Meta-programming II :

    • 👍 Found a better way to resolve CTAD limitations.

    🌐 Translation Units I :

    • 👌 Improved "Linkage" introduction.
    • ➕ Added a small section "Declarations and Definitions in Header and Source Files".
    • Described symbol visibility.

    Code Conventions II :

    • ➕ Added "Literal" section.

    Debugging :

    • Created a new section for "Static Analyzers".
    • ➕ Added results for "Static Analysis Tools Effectiveness".
    • ➕ Added NASA IKOS static analyzer.
    • 👌 Improved "C++ standard library hardening" section.
    • ➕ Added Google result for standard library hardening.
    • ➕ Added Microsoft STL hardening.
    • ➕ Added clang safe buffer programming model.
    • ➕ Added a study related to the impact of compiler warnings.
    • Created a new section "Code Complexity".
    • ➕ Added Debian test case for cppcheck.
    • ➕ Added -ftrapv flag to prevent undefined behavior.
    • ➕ Added "Type Sanitizer" section.
    • ➕ Added "Contracts" section.
    • 👌 Improved "Overview" and "Assertions" sections.
    • ➕ Added Cpptrace and Backward libraries.
    • ➕ Added reference to MSVC AddressSanitizer.

    Ecosystem :

    • ✂ Removed cloc, added tokei and scc.
    • ➕ Added compiler-explorer features and extended its description.
    • ➕ Added SourceTrail - Project Visualization.
    • ➕ Added Mr.Docs.
    • ➕ Added AST diff.
    • ➕ Added ast-grep.

    Utilities :

    • ➕ Added "C++ Views" introduction.
    • ➕ Added std::mdspan.
    • Significantly improved std::span section.
    • ➕ Added "True Random Number Generator (TRNG)" description.

    Iterators, Containers, Algorithms :

    • Described pro/cons of using std::array instead of raw arrays.

    Advanced Topics II :

    • Mentioned C++26 rule that disallows binding a returned reference to a temporary.

    Optimizations I :

    • ➕ Added "Amazon PageSpeed" case.

    Optimizations II :

    • 👌 Improved "Inlining" description.
    • ⚠ Described function inlining warning -Winline.
    • ➕ Added "one-character commit" (Meta) case study.
    • 👌 Improved "Pure" and "Constant" functions section.
    • 👌 Improved "Exception" effects on performance.
    • ➕ Added constexpr vs. static constexpr.

    Optimization III :

    • ➕ Added "Automatic Feedback-Directed Optimization (AutoFDO)" description.
    • ➕ Added "Compiler Optimization Remarks" description.
    • ➕ Added "Compression Libraries".
    • 👌 Improved "Performance Benchmarking" section.
    • ➕ Added "Program Memory Layout compiler options".
    • 👌 Improved "Architecture Flags" section.
    • ➕ Added VS2026 performance improvement.

    Thanks for all feedback and contributions: @ValentinoGuerrini, @nicolaszzhao, @bnbolo, @lingeandrea, @eddelbuettel, @leofracca, @mmorawiec, @linesight, @alarxx, @fdila, @bitorangej, @roshankarande, @hsunchiu, @c02y.

    Special thanks to @oleksandr-pavlyk and @krzysztofkortas for many opened issues.

  • v1.8.0 Changes

    November 08, 2024

    🚀 The soul of this release is the full refactoring and updating of the "Code Conventions" chapter:

    • All code conventions have been reviewed again, adding missing items and improving the organization of the existing ones
    • "Core C+"+ code convention has been fully added
    • Mentioned code convention tools like clang-tidy
    • All bullet points now have links to the official convention descriptions
    • The chapter has been split into two lectures and organized into several subsections to improve the readability

    Introduction :

    • ⚡️ Updated main charts: "C++ popularity" and "compute-trend"

    Preparation :

    • ⚡️ Books updated: "Professional C++", "Programming and Principles using C++"

    Basic Concepts II :

    • Improved "Integral data type" section: description of ptrdiff_t, added uintptr_t, added hardware relation with integral arithmetic
    • ➕ Added saturation arithmetic functions C++26 for integral data types
    • 👌 Improved signed integer and bitwise operations description

    Basic Concepts III :

    • ➕ Added C++ attributes section
    • 🚚 Moved "namespace" section here and added improvements: using namespace, using declaration in details
    • ➕ Added alternative syntax for namespace
    • ➕ Added an example of "using enum" pre-C++20

    Basic Concepts IV :

    • 🛠 Fixed "constexpr Function - Limitations" and minor section improvements
    • Described the relation between constexpr function and argument lifetime
    • Better explanation and more examples for static_cast, reinterpret_cast, const_cast, bit_cast
    • ➕ Added narrow_cast and "uniform initialization cast"
    • Mentioned the behavior of auto within structures
    • Mentioned the behavior of constexpr and structure binding
    • 🗄 Described volatile deprecation in C++20
    • 🚚 Moved pointer description before "Heap and Stack"
    • ➕ Added C++23 type safe placement allocation function

    Basic Concepts V :

    • ➕ Added "Boost Predef" library reference for common macros
    • ➕ Added template lambda emulation
    • ➕ Added an example of template lambda without automatic deduction
    • ➕ Added the relation between lambda expression and function
    • Described recursive lambda and lambda within another lambda
    • ➕ Added C++23 lambda expressions with optional parameters
    • Reported GCC 14 flag -fdiagnostics-all-candidates

    Object-Oriented Programming II :

    • 👌 Improved Polymorphism introduction and added "C++ Mechanisms for Polymorphism"

    Template and Metaprogramming II :

    • ➕ Added -Wfatal-errors to "Template Debugging" section

    🌐 Translation Units II :

    • 👌 Improved C++ libraries section. Clarified building steps, environment variables, usage, and ABI
    • 🌐 Small improvements in the "compiling multiple translation units" section

    Debugging :

    • ➕ Added Boost::Assert and Boost::stacktrace to assertion section
    • ➕ Added GWPSan Sampling-based Sanitizer
    • ➕ Added additional compiler flags to help debugging

    Ecosystem :

    • ⚡️ Updated the "AI-Powered Code Completion" tools
    • ⚡️ Books updated

    Utilities :

    • ➕ Added a section for random number generator for "Recent Algorithms and Performance"
    • 👌 Improved the seed generation section

    Advanced Topics I :

    • 🛠 Fixed type deduction example for array

    Optimization I :

    • ➕ Added new references in the "Introduction" section
    • 👌 Improved "Arithmetic Intensity" section

    Optimization II :

    • ➕ Added a few notes about loop optimization
    • 👌 Improved memory alignment section and added C++20 std::assume_aligned
    • 🛠 Fixed C++17 alignment function and added an example
    • ⚡️ Updated pragma unroll compiler support
    • ➕ Added a new reference for hash table comparison
    • ➕ Added MSVC forceinline attribute and adopted C++11 syntax

    Optimization III :

    • ➕ Added official link to LLVM Bolt project and a new benchmark
    • ➕ Added a benchmark for "Polyhedral Optimizations"
    • ➕ Added -fprefetch-loop-arrays optimization flag
    • ➕ Added userspace governor setting for cpu frequency
    • ➕ Added "Hash-prospector" as replacement for PRNG
    • ➕ Added optimized linear and binary search in "External libraries" section
    • ➕ Added target and target_clones function attributes

    Software Design I :

    • 🔨 Refactored "Member Functions vs. Free Functions" -> "Class Design"

    Thanks for all feedback and contributions: @FisherKKK, @JDRanpariya, @YueLu0116, @luck-tian, @D4arkShad0w, @DYNIO1999, @saveasguy, @leofracca, @Dong-kyu-Lee, @ChoiSeonMun, @viktorteren, @ChoiSeonMun, @Mati-as, @RuimingShen, @abzrg, @xintin, @russkel, @binary-manu

  • v1.7.0 Changes

    March 31, 2024

    👍 A huge thank you to all the contributors who are helping to make this course better and better day by day: @jakeheke75, @guoci, @leofracca, @ChenMiaoi, @AlanDeSmet, @indraneel-mondal, @Yuppdivyaj, @BiradarMayur2509, @Ali-Sda, @eltociear, @freakynit, @Wheest, @VaibhavSaraf, @LuccaT95, @ilovexyz, @kushnaryo8, @liyixin123, @Ingerdev, @eugenefil, @binary-manu, @dijkstracula, @arnimarj

    General Improvements :

    • Subsections now point to the right page
    • Switched to TexLive2024
    • 🚚 Moved the first part of Basic Concepts I in a new lecture "Preparation"
    • Provided the first draft of "Software Design" lectures

    Introduction :

    • ⚡️ Updated the book section
    • ➕ Added language performance benchmarking
    • ➕ Added a new quote on learning
    • ➕ Added new references to Rust, including "Secure by Design: Google’s Perspective on Memory Safety"
    • ➕ Added Cobol example to "Why Switching to a New Language is Hard?"

    Preparation :

    • ➕ Added the Zed editor
    • ➕ Added C++23/26 compiler flags

    Basic Concepts I :

    • ➕ Added a new section about the C++ type system
    • Minor improvements for the "Fundamental Types" section

    Basic Concepts II :

    • ➕ Added a couple of undefined behavior examples for integral types
    • ➕ Added a new example of mixing signed/unsigned error (Chandler Carruth, CppCon 2016)
    • Described the special value behavior for floating-point
    • ➕ Added floating-point undefined behavior
    • Slightly expanded the floating-point arithmetic properties section

    Basic Concepts III :

    • ➕ Added a [[deprecated]] attribute section
    • ➕ Added C++26 auto _ unused variable

    Basic Concepts IV :

    • 👌 Improved initialization section, especially brace-initialization
    • ➕ Added an example of undefined behavior for initialization
    • Described undefined behavior for pointer arithmetic
    • 👌 Improved the "sizeof" section
    • Described the [[no_unique_address]] section
    • 👌 Improved constexpr limitations section
    • ➕ Added static keyword within constexpr functions C++23

    Basic Concepts V :

    • ➕ Added another examples of common macro problems

    Object-Oriented Programming I :

    • Slightly improved the copy constructor introduction

    Object-Oriented Programming II :

    • 👌 Improved "Object Layout" section

    Templates and Meta-Programming I :

    • ➕ Added C++26 static_assert with formatting
    • 👌 Improved "Implicit Template Instantiation" section, thanks to @gouci
    • ➕ Added a subsection related to "Template Instantiation"

    Templates and Meta-Programming II :

    • 👌 Improved the "variadic template" section + two more examples
    • ➕ Added an example of variadic template applied to types
    • ➕ Added two notes about function SFINAE limitations
    • ✂ Removed "Class + Function" SFINAE
    • 👌 Improved CTAD introduction

    Debugging and Testing (previously Ecosystem I):

    • 👌 Improved "Undefined Behavior Sanitizer" section
    • Created a new section "Hardening Techniques"
    • ➕ Added compiler warnings for Windows
    • 👌 Improved the "static analysis" section and added msvc /analyse
    • ➕ Added a new example of Cost of Software Defects
    • Minor improved to the "Program Errors" section

    Ecosystem :

    • ✂ Removed Kite
    • ➕ Added ugrep

    Code Conventions :

    • 👌 Improved the Naming section
    • 💅 Described how to use clang-tidy to enforce a naming style
    • Reorganized code convention list
    • ➕ Added a personal comment on West/East notation

    Utilities :

    • 🚚 Move std::span to this lecture
    • 👌 Improved the "Time Measuring" section

    Iterators, Containers, and Algorithms:

    • ➕ Added a common error of iterator usage

    Advanced Concepts I :

    • 👌 Improved the "Undefined Behavior" section

    Advanced Concepts II :

    • ➕ Added Trivial infinite loop undefined behavior
    • ➕ Added the reference "Enumerating Core Undefined Behavior"
    • ➕ Added "Return Code", "Return Code and Exception Summary", and "std::expected" to "Recoverable Error Handing" section

    🐎 Performance Optimizations I :

    • Reformulated the "Basic Architecture Concepts" section
    • ➕ Added "core-to-core latency and threads affinity" section
    • ➕ Added Poisson solver complexity over time in the Moore's Law Limitations section
    • ➕ Added Arm64 cache line size
    • ➕ Added "Memory Ordering Model" section

    🐎 Performance Optimizations II :

    • 👍 Better explanation of loop unswitching
    • ➕ Added assertion optimization example
    • 👌 Improved data alignment section
    • 👍 Better explanation of signed integer optimization and added an example
    • ➕ Added a note related to stack data structure
    • 👌 Improved function attribute section
    • 👌 Improved function call section

    🐎 Performance Optimizations III :

    • ➕ Added ARM reference for BOLT optimization
    • ➕ Added -fopt-info to compiler optimization flags
    • ➕ Added -fassociative-math to floating point optimization flags
    • ➕ Added Abseil and Frozen to std data structures replacement
  • v1.6.0 Changes

    December 21, 2023

    First of all, THANK YOU TO EVERYONE FOR YOUR INTEREST IN THIS COURSE. In the last few weeks, the course jumped from 1K to 7.6K stars ✨ 🙏

    ✏️ Credit to @kimsoohwan, @Zitrax, @f9rocket, @saw-lau, @mostafacs, @platypusguy, @raymondmdang, @jesustorresdev, @HaloWang, @66hash, @abzrg, @csukuangfj, @jakeheke75, @amirkhaki, @fabrizio-ottati, @dsardelic, @akobyl for pointing me out several mistakes and typos

    Introduction :

    • ➕ Add a new section for C++ alternatives: Rust, Zig, Why switching to a new language is hard?
    • 🚚 Moved books to the related sections
    • ⚡️ Updated and simplified "Who I Am" section

    Basic Concepts I :

    • ➕ Added emacs, helix, lapce, neovim editors
    • ➕ Added IEEE 128/256-bit floating point formats
    • ➕ Added std::print
    • ➕ Added text version of logical operators

    Basic Concepts II :

    • 👌 Improved unsigned/signed section
    • 👌 Improved C++ Data Model section

    Basic Concepts III :

    • Minor improvements to "Declaration/Definition" section

    Basic Concepts IV :

    • 👌 Improved "Source Location Macros" section
    • 👌 Improved "Avoid Unused Variable Warning" section

    Basic Concepts V :

    • Minor improvements to Function Attributes
    • 👍 Better explanation and separation of "Source Location Macros" section

    Object-Oriented Programming I :

    • 👌 Improved "const keyword" section

    Templates and Meta-programming II :

    • ➕ Added "Constructor Template Automatic Deduction (CTAD)" section

    Code Conventions :

    • ➕ Added Marissa Mayer quote
    • ➕ Added some notes about code verbosity
    • 🛠 Separated "Use fixed-width integer type rule" between Google and Unreal

    Ecosystem I :

    • ➕ Added new memory vulnerability references
    • ➕ Added "Modern CMake for C++" book

    Utilities :

    • ➕ Added std::stacktrace library
    • ✂ Removed std::byte

    Containers, Iterators, Ranges, and Algorithms :

    • 🚚 Moved "Iterator categories" in the introduction for a better overview

    Optimizations I :

    • ➕ Added "Sqrt(N) for memory latency" notes

    Optimizations II :

    • 👍 Better description of vectorization and =default
  • v1.5.0 Changes

    November 20, 2023

    👍 Split "Basic Concepts I" into two sets of slides to better separate the topics and improve the readability.

    Basic Concepts II :

    • ➕ Added a new reference on how to compare signed and unsigned integers in C++20
    • ➕ Added a new reference for posit representation
    • ➕ Added a new reference for microscaling MX floating point formats

    Object Oriented Programming II :

    Code Conventions :

    • Minor improvements to "macro and preprocessing" section
    • ➕ Added Std naming convention where missing
    • 👌 Improve "brace initializer list" section

    🐎 Performance Optimziation II :

    • 👌 Improved Functions inlining section, added relation with linkage
  • v1.4.3 Changes

    October 23, 2023

    Basic Concepts I

    • 👌 Improved Operators Precedence Table
    • Minor improvements for floating point section

    Basic Concepts III

    • ➕ Added if constexpr pitfalls
    • ➕ Added volatile keyword
    • 👌 Improved struct and union section
    • 🛠 Fixed C++17 out-of-range assignment to enum

    Basic Concepts IV

    Object Oriented I

    • ➕ Added physical vs. logical state notes of struct/class
    • 👌 Improved Access specifiers section
    • 📜 Simplified the ''Most Vexing Parse" problem section

    Object Oriented II

    • 👌 Improve overview of operator overloading

    🌐 Translation Units II

    • Typo fixing

    Code Convention

    • Reorganized/improved Project Organization section
    • ➕ Added references to column limit note

    Ecosystem I

    • ➕ Added Unit/Functional test explanation

    Advanced Topics I

    • 👌 Improved ref-qualifiers overloading section + volatile overloading

    Advanced Topics II

    • 👌 Improved undefined behavior section and added examples of Function evaluation ordering and Signed overflow

    Optimization I

    • ➕ Added Moore's Law Limitations and refactoring

    Optimizations II

    • 👌 Improved Operations section, add logic vs. bitwise evaluation

    Optimization III

    • 👌 Improved cache behavior section
    • ➕ Added multi-threads considerations
    • 👌 Improved benchmarking section: added Instruction order issue and actual values vs. power consumption
    • 👌 Improved optmization flags section: added windows equivalent, -Oz, -mfma, instruction set flags
    • ➕ Added -fno-signaling-nans
  • v1.4.2 Changes

    September 14, 2023

    Basic Concepts I

    • ➕ Added C++23 floating-point types: range, suffix, prefix
    • ➕ Added ptrdiff_t
    • Minor improvements

    Basic Concepts II

    • Minor improvements

    Basic Concepts III

    • ➕ Added West, East notation for const
    • 👌 Improved constexpr section and explained the behavior of the keyword within a structure
    • ➕ Added C++23 if consteval

    Basic Concepts IV

    • ➕ Added Overloading and =delete section
    • ➕ Added consteval lambda example
    • ➕ Added [[nodiscard]] attribute
    • ➕ Added C++23 conditional preprocessing

    Object-Oriented Programming I

    • ➕ Added "Defaulted Constructors, Destructor, and Operators" section

    Object-Oriented Programming II

    • ➕ Added C++23 Multidimensional Subscript Operator
    • ➕ Added C++23 static operator()

    Templates and Metaprogramming I

    • 👌 Improved using keyword section
    • Simplified the type traits section

    Templates and Metaprogramming II

    • Minor improvements

    Code Conventions

    • Minor improvements

    Ecosystem I

    • 👌 Improved debugging introduction including the explanation of "Errors, Defects, and Failures", "Cost of Software Defects", "Types of Software Defects"

    Ecosystem II

    • ➕ Added hypergrep tool

    Utilities

    • ➕ Added C++23 std::print
    • ✂ Removed redundant code

    Advances Topics II

    • ➕ Added dangling reference undefined behavior

    🐎 Performance Optimizations I

    • ⚡️ Update Memory Hierarchy numbers
    • ⚡️ Update Memory Hierarchy figure

    🐎 Performance Optimizations II

    • ➕ Added C++23 std::unreachable()
    • ➕ Added "Std Library and Other Language Aspects" section (partially moved from Optimizations III)
  • v1.4.1 Changes

    July 15, 2023

    Basic Concepts I

    • 🛠 Fixed char properties in C++11 #8
    • Minor improvements in the undefined behavior section

    Basic Concepts III

    • ➕ Added a note to highlight that arrays of size 0 are not allowed by the standard (except gcc)

    Object-Oriented Programming I

    • 👌 Improved explicit keyword section

    🌐 Translation Units I

    • 👌 Improved Linkage Summary section

    Code Convention

    • 👌 Improved and refactoring the sections Maintainability, Naming, Readability and Formatting

    Ecosystem I

    • 👌 Improved gdb info command description
    • Added _FORTIFY_SOURCE=3 in stack protection section
    • 👌 Improved Unit Testing introduction
    • ➕ Add Test-Driven Development description
    • Extended Code Coverage to llvm-lcov

    Optimization I

    • ➕ Added apollo computer vs. usb-c comparison
    • ➕ Add Single Instruction Multiple Threads (SIMT) section
    • ➕ Added Jonh Carmark note about memory hierarchy

    Optimization II

    • ➕ Added Memory Prefetch section

    Thanks to @marcobergamin

  • v1.4.0 Changes

    April 03, 2023
    • 🌐 Split "Translation Units", "Ecosystem", and "Advanced Concepts" chapters for better readability
    • Added 8-bit floating-point to "Basic Concepts I"
  • v1.3.0 Changes

    March 18, 2023

    List of changes:

    Introduction:

    • ⚡️ Updated C++ timeline, Tiobe index, Redmonk index
    • 👌 Improved "Why C++ is so Popular?"
    • ➕ Added "C++ Weakness" section
    • ⚡️ Update/fixed book references
    • ➕ Added course slide legend

    Basic Concepts I:

    • ➕ Added NASA PI note
    • 🛠 Fixes #5 (used ! as escape char)

    Basic Concepts II:

    • 🛠 Fixes #6 (wrong array size)

    Basic Concepts III:

    • 🛠 Fixes malloc returns NULL for zero-size allocations
    • ➕ Added "Non-Allocating Placement section", "Non-Throwing Allocation", "Constants and Literals" sections
    • 🔨 Refactored "Structure Initialization"
    • ➕ Add a note for virtual + constexpr usage in C++20

    Basic Concepts IV:

    • 🛠 Fixed #6, wrong lambda return

    Object-Oriented Programming I:

    • 🚚 Moved struct initialization to "Basic Concepts III"
    • 👌 Improved = default implications
    • 👌 Improved/refactored static keyword section

    Object-Oriented Programming II:

    • 🛠 Fixes #6, downcast variables

    Template and Meta-programming I:

    • 🔨 Refactoring, especially "Template Parameter Types"

    Template and Meta-programming II:

    • 👌 Improved "Template Class Constructor" section

    🌐 Translation Units:

    • ➕ Added "Linkage of const and constexpr variables" section
    • Simplified "Linkage Summary"
    • 👍 Better explanation of ODR - Point 3 with improved inline, template, constexpr descriptions

    C++ Ecosystem:

    • ➕ Added a quote about maintenance effort
    • ⚡️ Updated valgrind version
    • ✂ Removed gcc detailed warnings section

    Advanced Topics:

    • 👌 Improve "Universal reference" section
    • 🛠 Minor fixes for "Smart pointer" section

    🐎 Performance Optimization I:

    • ➕ Added John Carmak note
    • ➕ Added "page thrashing" description
    • 🐎 Moved "Spatial Locality" and "Temporal Locality" details to Performance Optimization II

    🐎 Performance Optimization II:

    • ➕ Added "Compiler Hints - [assume]
    • Minor improvements to "Arguments passing" section
    • Added __attribute__ (pure) and __attribute__ (const) descriptions
    • ➕ Added a few notes to "Object Dynamic Behavior Optimizations", e.g. virtual implications

    🐎 Performance Optimization III:

    • 👍 Minor improvements to "Help the Compiler to Produce Better Code"
    • ➕ Added "Post-Processing Binary Optimizer" section