README improvements

This commit is contained in:
FedericoUnivr 2020-03-01 13:09:56 +01:00
parent c8109cef95
commit e0cb6d764f

View File

@ -1,8 +1,6 @@
# Modern C++ Programming # # Modern C++ Programming #
## C++11/C++14/C++17 ## ## C++11/C++14/C++17 ##
Open access C++ course, University of Verona (UNIVR), Italy
### Essential Tool ### ### Essential Tool ###
Online compiler and execution: [CompilerExplorer](https://godbolt.org/) Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
@ -11,7 +9,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
## TOPICS ## ## TOPICS ##
**1. Introduction** **[1. Introduction](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/01.Introduction.pdf)**
* A Little History of C/C++ Programming Languages * A Little History of C/C++ Programming Languages
* C++ Philosophy * C++ Philosophy
@ -19,7 +17,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Course Overview and References * Course Overview and References
* Who I Am * Who I Am
**2. Basic Concepts I** **[2. Basic Concepts I](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/02.Basic_Concepts_I.pdf)**
* Prerequirements: Compiler, editor, etc. * Prerequirements: Compiler, editor, etc.
* Hello World * Hello World
@ -28,7 +26,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Floating-point Arithmetic * Floating-point Arithmetic
* Floating-point Issues * Floating-point Issues
**3. Basic Concepts II** **[3. Basic Concepts II](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/03.Basic_Concepts_II.pdf)**
* Enumerators * Enumerators
* `union` and Bitfield * `union` and Bitfield
@ -36,7 +34,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Math Operators * Math Operators
* Statements and Control Flow * Statements and Control Flow
**4. Basic Concepts III** **[4. Basic Concepts III](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/04.Basic_Concepts_III.pdf)**
* Memory Management: Heap and Stack * Memory Management: Heap and Stack
* Initialization * Initialization
@ -45,13 +43,13 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* `const` and `constexpr` * `const` and `constexpr`
* Explicit Type Conversion * Explicit Type Conversion
**5. Basic Concepts IV** **[5. Basic Concepts IV](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/05.Basic_Concepts_IV.pdf)**
* Declaration and Definition * Declaration and Definition
* Functions * Functions
* Preprocessing * Preprocessing
**6. Utilities** **[6. Utilities](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/06.Utilities.pdf)**
* I/O Stream * I/O Stream
* Filesystem Library * Filesystem Library
@ -61,7 +59,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Random Numbers * Random Numbers
* Time Measuring * Time Measuring
**7. C++ Object Oriented Programming I** **[7. C++ Object Oriented Programming I](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/07.Object_Oriented_I.pdf)**
* C++ Classes * C++ Classes
* Class Constructor * Class Constructor
@ -70,20 +68,20 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Initialization and Defaulted Members * Initialization and Defaulted Members
* Class Keywords * Class Keywords
**8. C++ Object Oriented Programming II** **[8. C++ Object Oriented Programming II](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/08.Object_Oriented_II.pdf)**
* Polymorphism * Polymorphism
* Operator overloading * Operator overloading
** Special Objects * Special Objects
**9. C++ Templates and Meta-programming I** **[9. C++ Templates and Meta-programming I](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/09.Templates_I.pdf)**
* Function Templates * Function Templates
* Compile-Time Utilities * Compile-Time Utilities
* Type Traits * Type Traits
* Template Parameters * Template Parameters
**10. C++ Templates and Meta-programming II** **[10. C++ Templates and Meta-programming II](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/10.Templates_II.pdf)**
* Class Templates * Class Templates
* Template Meta-Programming * Template Meta-Programming
@ -91,7 +89,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Variadic Template * Variadic Template
* STD Template Utility * STD Template Utility
**11. Containers, Iterators, and Algorithms** **[11. Containers, Iterators, and Algorithms](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/11.Iterators_Containers_Alg.pdf)**
* Containers and Iterators * Containers and Iterators
* Sequence Containers: `array`, `vector`, `list`, `deque`, `forward_list` * Sequence Containers: `array`, `vector`, `list`, `deque`, `forward_list`
@ -102,7 +100,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Algorithms Library * Algorithms Library
* Lambda Expressions * Lambda Expressions
**12. Translation Units** **[12. Translation Units](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/12.Translation_Units.pdf)**
* Basic Concepts * Basic Concepts
* Linkage * Linkage
@ -114,7 +112,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Namespace * Namespace
* How to Compile: static and dynamic libraries * How to Compile: static and dynamic libraries
**13. Code Conventions** **[13. Code Conventions](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/13.Code_Convention.pdf)**
* C++ Project Organization * C++ Project Organization
* Coding Styles and Conventions * Coding Styles and Conventions
@ -125,7 +123,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Control Flow * Control Flow
* Naming and Formatting * Naming and Formatting
**14. Ecosystem** **[14. Ecosystem](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/14.Ecosystem.pdf)**
* Execution Debugging: `gdb` and `assert` * Execution Debugging: `gdb` and `assert`
* Memory Debugging: `valgrind` * Memory Debugging: `valgrind`
@ -139,7 +137,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Code Statistics: `lines count`, `cyclomatic complexity` * Code Statistics: `lines count`, `cyclomatic complexity`
* Other Tools: code `formating`, `exploring`, `benchmarking` * Other Tools: code `formating`, `exploring`, `benchmarking`
**15. Advanced Topics** **[15. Advanced Topics](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/15.Advanced_Topics.pdf)**
* Move Semantic * Move Semantic
* Copy Elision and RVO * Copy Elision and RVO
@ -148,7 +146,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Smart Pointers * Smart Pointers
* Concurrency: `std::thread` * Concurrency: `std::thread`
**16. Optimization I** **[16. Optimization I](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/16.Optimization_I.pdf)**
* General Concepts: asymptotic complexity, optimization cycle, Ahmdal Law, etc. * General Concepts: asymptotic complexity, optimization cycle, Ahmdal Law, etc.
* I/O Operations * I/O Operations
@ -158,7 +156,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Functions * Functions
* C++ Objects * C++ Objects
**17. Optimization II** **[17. Optimization II](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/17.Optimization_II.pdf)**
* Compiler Optimizations * Compiler Optimizations
* Libraries and Data Structures * Libraries and Data Structures
@ -167,13 +165,13 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
### Reporting bugs and contributing ### ### Reporting bugs and contributing ###
If you find any typos please report them by using the repository If you find any typos, conceptual errors, or sections to improve, please report them by writing directly to me or by using the `issue` panel
(**issues** panel).
## Author ## ## Author ##
* `Federico Busato`, Dept. of Computer Science, University of Verona (Italy) [federico.busato@univr.it](mailto:federico.busato@univr.it), * `Federico Busato`,
now Nvidia Corporation ([fbusato@nvidia.com](mailto:fbusato@nvidia.com)) Nvidia Corporation ([fbusato@nvidia.com](mailto:fbusato@nvidia.com))
Dept. of Computer Science, University of Verona (Italy) [federico.busato@univr.it](mailto:federico.busato@univr.it)
## License ## ## License ##