In the following, you can find a (partial) archive of the seminar "C++: discovering and teaching modern C++17 programming" that was held in the summer term 2018 at Technische Universität München. The authors agreed with publication of their materials, however, the copyright remains with them.

Topic list

DateStudentTopicMaterials
April 10, 2018V. MarkovaModern C++ TriviaPresentation Report
May 8, 2018D. RiedelConstexpr and Inline Variables in C++17Presentation Report
May 15, 2018P. HerrleLambda Expressions in C++14 and C++17 (part 1)Presentation Report
May 29, 2018B. SeidlLambda Expressions in C++14 and C++17 (part 2)Presentation Report
June 5, 2018C. HonalFold Expressions in C++17Presentation Report
June 5, 2018T. JülgTemplates with Strings and auto in C++17Presentation Report
June 19, 2018P. BockConcurrency in C++17: Parallel STLPresentation Report
June 26, 2018A. Font CalveronsSplicing for Maps and Sets in C++17Presentation Report
July 3, 2018C. KolbCoroutines in C++20Presentation Report
July 3, 2018M. WechnerThoughts on Generative Programming in C++: MetaclassesPresentation Report
July 10, 2018D. BelowSFINAE, std::enable_if and Compile-Time ReflectionPresentation Report
July 10, 2018E. V. JanssonA C++ Concepts Primer: defining and applying constraintsPresentation


Tools

Tools for creating slides and written report

Tools for live exercises

Compiler info

See also Compiler Support

CompilerC++14 supportC++17 support
GCCfrom version 5most parts in version 7
Clangfrom version 3.4most parts in version 4
MSVCfrom version 19.10some parts in version 19.12


Tips and tricks

Typesetting C++ in LaTeX

Something you will likely notice pretty early on when writing your report (on standard LaTeX, as Knuth and Lamport intended), is that the default way LaTeX typesets "C++" is horrible. Look at the top-most image below to see this atrocity. There are many posts on the internet on the issue, e.g. on TeX StackExchange, with different solutions (with varying degrees of quality). A simple way to solve it is to use e.g. C\texttt{++} everywhere, but doesn't work in all cases (e.g. in the report title). I've instead used the solution here, which gives the bottom-most result.

\usepackage{relsize} % Paste this somewhere at the start of your main LaTeX document file.
\newcommand\Cpp{C\nolinebreak[4]\hspace{-.05em}\raisebox{.4ex}{\relsize{-3}{\textbf{++}}}}
This is how you typeset \Cpp\ a bit better than the default way LaTeX does it, cool right?


  • No labels