diff --git a/01.Introduction.pdf b/01.Introduction.pdf index a619b6e..ad6943d 100644 Binary files a/01.Introduction.pdf and b/01.Introduction.pdf differ diff --git a/02.Basic_Concepts_I.pdf b/02.Basic_Concepts_I.pdf index 593e3c9..0d5a237 100644 Binary files a/02.Basic_Concepts_I.pdf and b/02.Basic_Concepts_I.pdf differ diff --git a/06.Object_Oriented_I.pdf b/06.Object_Oriented_I.pdf index 91826b8..cd2d6a9 100644 Binary files a/06.Object_Oriented_I.pdf and b/06.Object_Oriented_I.pdf differ diff --git a/09.Templates_II.pdf b/09.Templates_II.pdf index 52a08ce..ece6058 100644 Binary files a/09.Templates_II.pdf and b/09.Templates_II.pdf differ diff --git a/10.Translation_Units.pdf b/10.Translation_Units.pdf index 1408c2a..f630860 100644 Binary files a/10.Translation_Units.pdf and b/10.Translation_Units.pdf differ diff --git a/12.Ecosystem.pdf b/12.Ecosystem.pdf index 9221604..dbd697d 100644 Binary files a/12.Ecosystem.pdf and b/12.Ecosystem.pdf differ diff --git a/15.Advanced_Topics.pdf b/15.Advanced_Topics.pdf index da2fd3d..d3deac1 100644 Binary files a/15.Advanced_Topics.pdf and b/15.Advanced_Topics.pdf differ diff --git a/16.Optimization_I.pdf b/16.Optimization_I.pdf index 925870c..ea49396 100644 Binary files a/16.Optimization_I.pdf and b/16.Optimization_I.pdf differ diff --git a/17.Optimization_II.pdf b/17.Optimization_II.pdf index 801b32d..c179d08 100644 Binary files a/17.Optimization_II.pdf and b/17.Optimization_II.pdf differ diff --git a/README.md b/README.md index 06b4bc7..7f9250e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ # Modern C++ Programming # + + ## C++11 / C++14 / C++17 / (C++20) ## This *open-access* course is directed at those who are already familiar with C and object-oriented programming towards a proficiency level of C++ programming. The course covers the basics of C++ programming and moves on to advanced C++ semantics and concepts. @@ -13,9 +15,32 @@ This *open-access* course is directed at those who are already familiar with C a - *Experience-based*: many aspects, examples, and problems come from real-world cases faced during my work as software engineer If you enjoy the course or you find it useful, please add a **Star** + [![stars - Modern-CPP-Programming](https://img.shields.io/github/stars/federico-busato/Modern-CPP-Programming?style=social)](https://github.com/federico-busato/Modern-CPP-Programming) -## TOPICS ## +## CHAPTERS ## + +| | TITLE | MAIN FOCUS | +| ------ | ------------------------------------------------------------ | ------------------------------------------------------------ | +| **1** | **[Introduction](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/01.Introduction.pdf)** | History of C/C++, Areas of Applications, Course introduction | +| **2** | **[Basic Concepts I - Fundamental Types](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/02.Basic_Concepts_I.pdf)** | Integral data types, floating-point, operators, and conversion | +| **3** | **[Basic Concepts II - Entities and Control Flow](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/03.Basic_Concepts_II.pdf)** | Enumerators, structures, control flow statements | +| **4** | **[Basic Concepts III - Memory Management](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/04.Basic_Concepts_III.pdf)** | Heap, Stack, pointers, references, const property, conversion operators | +| **5** | **[Basic Concepts IV - Functions and Preprocessing](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/05.Basic_Concepts_IV.pdf)** | Functions, lambda expressions, preprocessing directives | +| **6** | **[C++ Object Oriented Programming I](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/06.Object_Oriented_I.pdf)** | Class hierarchy, constructor, destructor, class keywords | +| **7** | **[C++ Object Oriented Programming II](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/07.Object_Oriented_II.pdf)** | Polymorphism, operators overloading | +| **8** | **[C++ Templates and Meta-programming I](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/08.Templates_I.pdf)** | Function template, type traits | +| **9** | **[C++ Templates and Meta-programming II](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/9.Templates_II.pdf)** | Class template, SFINAE | +| **10** | **[Translation Units](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/10.Translation_Units.pdf)** | Dealing with multiple translation units and files, namespace | +| **11** | **[Code Conventions](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/11.Code_Convention.pdf)** | Project organization and main code conventions | +| **12** | **[Ecosystem](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/12.Ecosystem.pdf)** | Debugging, testing, building, documenting tools | +| **13** | **[Utilities](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/13.Utilities.pdf)** | Main `std` libraries | +| **14** | **[Containers, Iterators, and Algorithms](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/14.Iterators_Containers_Alg.pdf)** | Containers, iterators, algorithms | +| **15** | **[Advanced Topics](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/15.Advanced_Topics.pdf)** | Move semantics, error handling, C++ idioms | +| **16** | **[Optimization I](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/16.Optimization_I.pdf)** | Code optimizations, e.g. arithmetic, memory, etc. | +| **17** | **[Optimization II](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/17.Optimization_II.pdf)** | Compiler optimizations, profiling and benchmarking tools | + +## TOPICS **[1. Introduction](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/01.Introduction.pdf)** @@ -66,7 +91,7 @@ If you enjoy the course or you find it useful, please add a **Star** * **Class Constructor**: Default constructor, Initializer list, Uniform initialization, Delegate constructor, `explicit` keyword * **Copy Constructor** * **Class Destructor** -* **Defaulted Members**: Defaulted constructor +* **Defaulted Members** (`= default`) * **Class Keywords**: `this`, `static`, `const`, `mutable`, `using`, `friend`, `delete` **[7. C++ Object Oriented Programming II](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/07.Object_Oriented_II.pdf)** diff --git a/other/cpp_logo.png b/other/cpp_logo.png new file mode 100644 index 0000000..ace3f50 Binary files /dev/null and b/other/cpp_logo.png differ