This repository contains all materials for the C++ (CPl) modules at OST.
We use the CPl-HS23
Team on the OST MS Teams instance.
Recordings of the lecture in Sankt Gallen will be available in the same Team.
In the course of this module students learn usage and understanding of modern C++.
Code examples in the lecture and exercises target the current C++ standard, also known als C++20. A pre-version of the language standard can be found here. This working draft lacks only minor editorial fixes compared to the official standard.
A much more accessible reference to the standard document exists in cppreference
Week | Lecture | Exercise | Topics | Remarks |
---|---|---|---|---|
38 | Slides | E01 (PDF) | Introduction | |
39 | Slides | E02 (PDF) | Values | |
40 | Slides | E03 (PDF) | Sequences and Iterators | |
41 | Slides | E04 (PDF) | Functions and Exceptions | Testat 1 |
42 | Slides | E05 (PDF) | Classes and Operator Overloading | |
43 | Slides | E06 (PDF) | Namespaces, Arithmetic Overloading, Enums | |
44 | Slides | E07 (PDF) | Standard Containers | |
45 | Slides | E08 (PDF) | Algorithms | Testat 2 |
46 | Slides | E09 (PDF) | Function Templates | |
47 | Slides | E10 (PDF) | Class Templates | |
48 | Slides | E11 (PDF) | Heap Memory | Testat 3 |
49 | Slides | E12 (PDF) | Dynamic Polymorphism, Variant | |
50 | Slides | E13 (PDF) | Initialization & Aggregates | |
51 | TBD |
Language References:
- CPP Reference: https://www.cppreference.com/
- CPlusPlus.com: http://www.cplusplus.com
- MSDN Langauge Reference: https://docs.microsoft.com/en-us/cpp/cpp/cpp-language-reference
- MSDN Standard Library Reference: https://docs.microsoft.com/en-us/cpp/standard-library/cpp-standard-library-reference
Online Compilers:
- Godbolt: https://godbolt.org/
- Wandbox: https://wandbox.org/
Links from the Lecture:
- Structured Bindings: https://skebanga.github.io/structured-bindings/
- Problems with Move Semantics (You Tube): https://www.youtube.com/watch?v=PNRju6_yn3o
- Rvalue References and Move Semantics: http://thbecker.net/articles/rvalue_references/section_01.html
- Too Perfect Forwarding: https://akrzemi1.wordpress.com/2013/10/10/too-perfect-forwarding/
- Fun with Blinky (You Tube): https://www.youtube.com/watch?v=6pmWojisM_E
- Reading Declarations: https://cdecl.org/
- Overhead of Dynamic Dispatching: http://eli.thegreenplace.net/2013/12/05/the-cost-of-dynamic-virtual-calls-vs-static-crtp-dispatch-in-c
- Long Compile-Times with Template Meta Programming: http://cpptruths.blogspot.ch/2005/11/c-templates-are-turing-complete.html
IDE and Compilers:
- Cevelop: https://www.cevelop.com
- MinGW (from STL): https://nuwen.net/mingw.html
- MSYS2: https://www.msys2.org/
- CMake: https://cmake.org/
Libraries:
- Boost Library: https://www.boost.org/
- Boost Units: https://www.boost.org/doc/libs/1_74_0/doc/html/boost_units/Units.html
- ASIO: https://think-async.com/Asio/
- SFML: https://www.sfml-dev.org/
Collection of C++ Resources:
Exercises with Solutions
- The Modern C++ Challenge (Available only at HSR internally): https://ebookcentral.proquest.com/lib/fh-ostschweiz/detail.action?docID=5400397&query=bancila
keywords:
- c++ title: 'C++: Module overview'