first commit
This commit is contained in:
155
README.md
155
README.md
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user