Dipl.-Ing. Martin Weitzel, 64380 Roßdorf bei Darmstadt

aptiv-cpp2021-03

Link for the two extra hours 2021-04-22
10:00 to 12:00

https://app.codingrooms.com/c-join/c/kd2gzXpgWHwf/VYWEh8

Simply click CONTINUE on the page that comes up.
Then, on the next page, change the "Phantasy Name" to your real name.
(Maybe first name only, if that's what is used among your colleagues.)


NOW YOU'RE IN ...
... and may chose to switch your camera / microphone on (left down on the screen).
NOTE: Icons displayed in RED color means camera resp. microphone is OFF.
Closer to the middle (but still at the bottom) you'll find three dots labeled "More".
Click there to access a menu that allows you to change your video of audio.
You can also test your sound settings there.
(E.g. if you use a headset but still have your speakers selected.)

After an initial "hello" maybe mute yourself unless you want to say something.
Whether you want to show your face or not is up to you.


If for any reason you have to leave or your internet connection drops you can let me know:

0151 1787 1397


Topics not yet covered (for prioritizing the afternoon part):

  • C++ Standard-Library
    • I/O-Streams
    • Basic STL Concepts (Containers / Container Adapters / Iterators) [*1]
    • STL Algorithms
    • Function Literals [*2] (Lambdas) and `std::function`
    • Durations and Clocks (Chrono Library)
    • Random Numbers and Distributions
  • Guidelines and Best Practices
    • General Performance Hints
    • Transitioning from C to C++
  • Concurrency Basics (Multi-Threading)
  • Writing Templates (Basics of Template Metaprogramming[*3])
  • C++ "Under the Hood" (mapping of high-level constructs to the hardware)
  • Maybe more topics based on the Infographics

*1: STL is a rather large topic but is relatively easy access in a self-study approach. If we decide to keep it short I would still like to gon to one specific Infographic of this part to explain why there is a recommendation to make Move Constructors `noexcept`.

*2: The motivation for having something like Lambdas is easier to understand if a short overview of the typical use of STL algorithms is given first.

*3: Template Metaprogramming is a very large topic and only of importance for those who want or need to write libraries in a generic way (i.e. not depending on specific types but rather on a set of types with common capabilities).

 

Training Material (to view in browser, needs JavaScript, internal and external links work)

Training Material as PDF (mainly to print-out, internal and external links may NOT work)

Training Workbook (to view in browser, needs JavaScript, internal and external links work)

Training Workbook as PDF (mainly to print-out, internal and external links may NOT work)

Exercises and Solutions (as single ZIP File)

Presentation and Workbook Source Code (as single ZIP file) [*]

*: The Presentation Source Code is only necessary for those who want to edit the Markdown inside the HTML (e.g. to put in their own remarks in the otherwise unused "Presenter's Notes").


Live Demos / Sandbox Examples

  • Pointer to `const` vs. Pointers that are themselves `const`
    https://godbolt.org/z/PnEvnn4Pv
    https://godbolt.org/z/K8vTfKcq7
  • `const` vs. `constexpr` for data and for functions
    https://godbolt.org/z/vGh6zjWTn
  • `auto`
    https://godbolt.org/z/MzvMW7q1h
    https://godbolt.org/z/5xxM65b6o
    https://godbolt.org/z/d19d61K4z
    https://godbolt.org/z/zna818s6c
    https://godbolt.org/z/sf1a87b3P
    https://godbolt.org/z/5crr7oE99
    https://godbolt.org/z/r36rK483P
    https://godbolt.org/z/W1PG6eK3q
    https://godbolt.org/z/863TMf5q6
    https://godbolt.org/z/qfPvzTjaM
     
  • https://isocpp.org/wiki/faq/basics-of-inheritance#importance-of-inherit
  • https://en.wikipedia.org/wiki/Copy_elision