first commit

This commit is contained in:
FedericoUnivr
2018-03-08 12:04:09 +01:00
parent e77b56578e
commit bf724bf1f3
13 changed files with 30666 additions and 1 deletions

BIN
1.Introduction.pdf Normal file

Binary file not shown.

BIN
10.Debugging_Tools.pdf Normal file

Binary file not shown.

BIN
11.Advanced_Topics.pdf Normal file

Binary file not shown.

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

File diff suppressed because it is too large Load Diff

BIN
4.Utilities.pdf Normal file

Binary file not shown.

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

Binary file not shown.

BIN
7.Templates_II.pdf Normal file

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

2778
A.Topics.pdf Normal file

File diff suppressed because it is too large Load Diff

155
README.md
View File

@ -1,2 +1,155 @@
# Modern-CPP-Programming
# Modern-CPP-Programming #
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.