diff --git a/01.Introduction.pdf b/01.Introduction.pdf index 2b1f1c1..5cde94b 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 7acb407..5217e2a 100644 Binary files a/02.Basic_Concepts_I.pdf and b/02.Basic_Concepts_I.pdf differ diff --git a/03.Basic_Concepts_II.pdf b/03.Basic_Concepts_II.pdf index 2174a89..b6396a2 100644 Binary files a/03.Basic_Concepts_II.pdf and b/03.Basic_Concepts_II.pdf differ diff --git a/04.Basic_Concepts_III.pdf b/04.Basic_Concepts_III.pdf index ba6413d..42c8bd7 100644 Binary files a/04.Basic_Concepts_III.pdf and b/04.Basic_Concepts_III.pdf differ diff --git a/05.Basic_Concepts_IV.pdf b/05.Basic_Concepts_IV.pdf index 9065719..702062c 100644 Binary files a/05.Basic_Concepts_IV.pdf and b/05.Basic_Concepts_IV.pdf differ diff --git a/07.Object_Oriented_I.pdf b/06.Object_Oriented_I.pdf similarity index 94% rename from 07.Object_Oriented_I.pdf rename to 06.Object_Oriented_I.pdf index a37a241..aaa31a2 100644 Binary files a/07.Object_Oriented_I.pdf and b/06.Object_Oriented_I.pdf differ diff --git a/08.Object_Oriented_II.pdf b/07.Object_Oriented_II.pdf similarity index 59% rename from 08.Object_Oriented_II.pdf rename to 07.Object_Oriented_II.pdf index 8a8b8ea..fdedbaa 100644 Binary files a/08.Object_Oriented_II.pdf and b/07.Object_Oriented_II.pdf differ diff --git a/09.Templates_I.pdf b/08.Templates_I.pdf similarity index 74% rename from 09.Templates_I.pdf rename to 08.Templates_I.pdf index a94af34..119f8ac 100644 Binary files a/09.Templates_I.pdf and b/08.Templates_I.pdf differ diff --git a/10.Templates_II.pdf b/09.Templates_II.pdf similarity index 71% rename from 10.Templates_II.pdf rename to 09.Templates_II.pdf index 5191180..74590c5 100644 Binary files a/10.Templates_II.pdf and b/09.Templates_II.pdf differ diff --git a/12.Translation_Units.pdf b/10.Translation_Units.pdf similarity index 97% rename from 12.Translation_Units.pdf rename to 10.Translation_Units.pdf index b6ca4d3..f6226b0 100644 Binary files a/12.Translation_Units.pdf and b/10.Translation_Units.pdf differ diff --git a/13.Code_Convention.pdf b/11.Code_Convention.pdf similarity index 94% rename from 13.Code_Convention.pdf rename to 11.Code_Convention.pdf index 048ab59..d4bebe1 100644 Binary files a/13.Code_Convention.pdf and b/11.Code_Convention.pdf differ diff --git a/14.Ecosystem.pdf b/12.Ecosystem.pdf similarity index 99% rename from 14.Ecosystem.pdf rename to 12.Ecosystem.pdf index 7d2853f..5ac5bce 100644 Binary files a/14.Ecosystem.pdf and b/12.Ecosystem.pdf differ diff --git a/06.Utilities.pdf b/13.Utilities.pdf similarity index 78% rename from 06.Utilities.pdf rename to 13.Utilities.pdf index 768cbed..b350619 100644 Binary files a/06.Utilities.pdf and b/13.Utilities.pdf differ diff --git a/11.Iterators_Containers_Alg.pdf b/14.Iterators_Containers_Alg.pdf similarity index 85% rename from 11.Iterators_Containers_Alg.pdf rename to 14.Iterators_Containers_Alg.pdf index 5a8b1a2..5071170 100644 Binary files a/11.Iterators_Containers_Alg.pdf and b/14.Iterators_Containers_Alg.pdf differ diff --git a/15.Advanced_Topics.pdf b/15.Advanced_Topics.pdf index 472f4c2..ea045ae 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 82b0ae6..41b0c32 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 86fbd57..66bc3e9 100644 Binary files a/17.Optimization_II.pdf and b/17.Optimization_II.pdf differ diff --git a/README.md b/README.md index 9c598d7..f63ba96 100644 --- a/README.md +++ b/README.md @@ -12,10 +12,10 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/) **[1. Introduction](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/01.Introduction.pdf)** * A Little History of C/C++ Programming Languages +* Areas of Application and Popularity * C++ Philosophy -* Why C++? -* Course Overview and References -* Who I Am +* Books and References +* The Course **[2. Basic Concepts I](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/02.Basic_Concepts_I.pdf)** @@ -49,17 +49,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/) * Functions * Preprocessing -**[6. Utilities](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/06.Utilities.pdf)** - -* I/O Stream -* Filesystem Library -* Math Functions -* Algorithm Library -* `std::string` and `std::string_view` -* Random Numbers -* Time Measuring - -**[7. C++ Object Oriented Programming I](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/07.Object_Oriented_I.pdf)** +**[6. C++ Object Oriented Programming I](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/06.Object_Oriented_I.pdf)** * C++ Classes * Class Constructor @@ -68,39 +58,27 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/) * Initialization and Defaulted Members * Class Keywords -**[8. C++ Object Oriented Programming II](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/08.Object_Oriented_II.pdf)** +**[7. C++ Object Oriented Programming II](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/07.Object_Oriented_II.pdf)** * Polymorphism * Operator overloading * Special Objects -**[9. C++ Templates and Meta-programming I](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/09.Templates_I.pdf)** +**[8. C++ Templates and Meta-programming I](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/08.Templates_I.pdf)** * Function Templates * Compile-Time Utilities * Type Traits * Template Parameters -**[10. C++ Templates and Meta-programming II](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/10.Templates_II.pdf)** +**[9. C++ Templates and Meta-programming II](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/9.Templates_II.pdf)** * Class Templates * Template Meta-Programming * SFINAE: Substitution Failure Is Not An Error * Variadic Template -* STD Template Utility -**[11. Containers, Iterators, and Algorithms](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/11.Iterators_Containers_Alg.pdf)** - -* Containers and Iterators -* Sequence Containers: `array`, `vector`, `list`, `deque`, `forward_list` -* Associative Containers: `set`, `map` -* Container Adaptors: `stack`, `queue`, `priority_queue` -* Implement a Custom Iterator -* Iterator Utility Methods -* Algorithms Library -* Lambda Expressions - -**[12. Translation Units](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/12.Translation_Units.pdf)** +**[10. Translation Units](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/10.Translation_Units.pdf)** * Basic Concepts * Linkage @@ -112,7 +90,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/) * Namespace * How to Compile: static and dynamic libraries -**[13. Code Conventions](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/13.Code_Convention.pdf)** +**[11. Code Conventions](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/11.Code_Convention.pdf)** * C++ Project Organization * Coding Styles and Conventions @@ -123,7 +101,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/) * Control Flow * Naming and Formatting -**[14. Ecosystem](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/14.Ecosystem.pdf)** +**[12. Ecosystem](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/12.Ecosystem.pdf)** * Execution Debugging: `gdb` and `assert` * Memory Debugging: `valgrind` @@ -137,6 +115,28 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/) * Code Statistics: `lines count`, `cyclomatic complexity` * Other Tools: code `formatting`, `exploring`, `benchmarking` +**[13. Utilities](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/13.Utilities.pdf)** + +* I/O Stream +* STD Template Utility +* Filesystem Library +* Math Functions +* Algorithm Library +* `std::string` and `std::string_view` +* Random Numbers +* Time Measuring + +**[14. Containers, Iterators, and Algorithms](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/14.Iterators_Containers_Alg.pdf)** + +* Containers and Iterators +* Sequence Containers: `array`, `vector`, `list`, `deque`, `forward_list` +* Associative Containers: `set`, `map` +* Container Adaptors: `stack`, `queue`, `priority_queue` +* Implement a Custom Iterator +* Iterator Utility Methods +* Algorithms Library +* Lambda Expressions + **[15. Advanced Topics](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/15.Advanced_Topics.pdf)** * Move Semantic