mirror of
https://github.com/federico-busato/Modern-CPP-Programming.git
synced 2025-04-20 00:19:03 +03:00
first commit
This commit is contained in:
BIN
1.Introduction.pdf
Normal file
BIN
1.Introduction.pdf
Normal file
Binary file not shown.
BIN
10.Debugging_Tools.pdf
Normal file
BIN
10.Debugging_Tools.pdf
Normal file
Binary file not shown.
BIN
11.Advanced_Topics.pdf
Normal file
BIN
11.Advanced_Topics.pdf
Normal file
Binary file not shown.
7037
2.Basic_Concepts_I.pdf
Normal file
7037
2.Basic_Concepts_I.pdf
Normal file
File diff suppressed because it is too large
Load Diff
6246
3.Basic_Concepts_II.pdf
Normal file
6246
3.Basic_Concepts_II.pdf
Normal file
File diff suppressed because it is too large
Load Diff
BIN
4.Utilities.pdf
Normal file
BIN
4.Utilities.pdf
Normal file
Binary file not shown.
7106
5.Object_Oriented.pdf
Normal file
7106
5.Object_Oriented.pdf
Normal file
File diff suppressed because one or more lines are too long
BIN
6.Templates_I.pdf
Normal file
BIN
6.Templates_I.pdf
Normal file
Binary file not shown.
BIN
7.Templates_II.pdf
Normal file
BIN
7.Templates_II.pdf
Normal file
Binary file not shown.
BIN
8.Iterators_Containers_Alg.pdf
Normal file
BIN
8.Iterators_Containers_Alg.pdf
Normal file
Binary file not shown.
7345
9.Code_Organization_Convention.pdf
Normal file
7345
9.Code_Organization_Convention.pdf
Normal file
File diff suppressed because it is too large
Load Diff
2778
A.Topics.pdf
Normal file
2778
A.Topics.pdf
Normal file
File diff suppressed because it is too large
Load Diff
155
README.md
155
README.md
@ -1,2 +1,155 @@
|
|||||||
# Modern-CPP-Programming
|
# Modern-CPP-Programming #
|
||||||
|
|
||||||
Modern C++ Programming Course (UNIVR)
|
Modern C++ Programming Course (UNIVR)
|
||||||
|
|
||||||
|
## TOPICS ##
|
||||||
|
|
||||||
|
**1. Introduction**
|
||||||
|
|
||||||
|
* A Little History of C and C++ Programming Languages
|
||||||
|
* C++ Philosophy
|
||||||
|
* Why C++ is so popular?
|
||||||
|
* Why C++ is so difficult?
|
||||||
|
|
||||||
|
**2. Basic Concepts I**
|
||||||
|
|
||||||
|
* Before Start
|
||||||
|
* Hello World
|
||||||
|
* I/O Stream
|
||||||
|
* C++ Primitive Types
|
||||||
|
* Floating Point
|
||||||
|
* Strongly Typed Enumerators
|
||||||
|
* Math Operators
|
||||||
|
* Statement and Control Flow
|
||||||
|
|
||||||
|
**3. Basic Concepts II**
|
||||||
|
|
||||||
|
* Memory Management: Heap and Stack
|
||||||
|
* Storage Class Specifiers
|
||||||
|
* Pointers and References
|
||||||
|
* sizeof Operator
|
||||||
|
* Other Keywords
|
||||||
|
* Explicit Type Conversion
|
||||||
|
* Declaration and Definition
|
||||||
|
* Functions
|
||||||
|
* Unions and Bitfields
|
||||||
|
* Preprocessing
|
||||||
|
|
||||||
|
**4. Utilities**
|
||||||
|
|
||||||
|
* Math Functions
|
||||||
|
* Algorithm Library
|
||||||
|
* String
|
||||||
|
* Random Numbers
|
||||||
|
* Time Measuring
|
||||||
|
|
||||||
|
**5. C++ Object Oriented Programming**
|
||||||
|
|
||||||
|
* C++ Classes
|
||||||
|
* Class keyword
|
||||||
|
* Polymorphism
|
||||||
|
* Operator Overloading
|
||||||
|
* Special Objects
|
||||||
|
|
||||||
|
**6. C++ Templates and Meta-programming I**
|
||||||
|
|
||||||
|
* Function Templates
|
||||||
|
* Type Deduction
|
||||||
|
* Compile-Time Utilities
|
||||||
|
* Type Traits
|
||||||
|
* Template Parameters
|
||||||
|
|
||||||
|
6. C++ Templates and Meta-programming II
|
||||||
|
|
||||||
|
* Class Templates
|
||||||
|
* Template Meta-Programming
|
||||||
|
* SFINAE
|
||||||
|
* Variadic Template
|
||||||
|
* STD Template Utility
|
||||||
|
|
||||||
|
**8. Containers, Iterators, and Algorithms**
|
||||||
|
|
||||||
|
* Containers and Iterators
|
||||||
|
* Sequence Containers
|
||||||
|
* Associative Containers
|
||||||
|
* Container Adaptors
|
||||||
|
* Implement a Custom Iterator
|
||||||
|
* Iterator Utility Methods
|
||||||
|
* Algorithms Library
|
||||||
|
* Lambda Expressions
|
||||||
|
|
||||||
|
**9. Code Organization and Conventions**
|
||||||
|
|
||||||
|
* Basic Concepts
|
||||||
|
* Variables Storage
|
||||||
|
* Dealing with Multiple Files
|
||||||
|
* Namespace
|
||||||
|
* C++ Project Organization
|
||||||
|
* Coding Style and Conventions
|
||||||
|
|
||||||
|
**10. Debugging and Tools**
|
||||||
|
|
||||||
|
* Debugging
|
||||||
|
* CMake
|
||||||
|
* Code Checking and Analysis
|
||||||
|
* Code Quality (Linter)
|
||||||
|
* Code Testing
|
||||||
|
* Code Commenting (Doxygen)
|
||||||
|
* Code Statistics
|
||||||
|
* Other Tools
|
||||||
|
|
||||||
|
**11. Advanced Topics**
|
||||||
|
|
||||||
|
* Move Semantic
|
||||||
|
* C++ Idioms
|
||||||
|
* Smart Pointers
|
||||||
|
* Concurrency
|
||||||
|
* C++ Guidelines
|
||||||
|
|
||||||
|
### Reporting bugs and contributing ###
|
||||||
|
|
||||||
|
If you find any typos please report them by using the repository
|
||||||
|
(github **issues** panel).
|
||||||
|
We are also ready to engage in improving and extending the course material.
|
||||||
|
(You will be included in the `Acknowledgements` Section)
|
||||||
|
|
||||||
|
## Acknowledgements ##
|
||||||
|
|
||||||
|
*
|
||||||
|
|
||||||
|
## Author ##
|
||||||
|
|
||||||
|
* `Federico Busato`, University of Verona (Italy)
|
||||||
|
* `Alessandro Danese`, University of Verona (Italy)
|
||||||
|
|
||||||
|
## License ##
|
||||||
|
|
||||||
|
> BSD 3-Clause License
|
||||||
|
>
|
||||||
|
> Copyright (c) 2017, Hornet
|
||||||
|
> All rights reserved.
|
||||||
|
>
|
||||||
|
> Redistribution and use in source and binary forms, with or without
|
||||||
|
> modification, are permitted provided that the following conditions are met:
|
||||||
|
>
|
||||||
|
> * Redistributions of source code must retain the above copyright notice, this
|
||||||
|
> list of conditions and the following disclaimer.
|
||||||
|
>
|
||||||
|
> * Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
> this list of conditions and the following disclaimer in the documentation
|
||||||
|
> and/or other materials provided with the distribution.
|
||||||
|
>
|
||||||
|
> * Neither the name of the copyright holder nor the names of its
|
||||||
|
> contributors may be used to endorse or promote products derived from
|
||||||
|
> this software without specific prior written permission.
|
||||||
|
>
|
||||||
|
> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
> AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
> IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
> DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
> FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
> DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
> SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
> CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
> OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
> OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
Reference in New Issue
Block a user