Advanced Seminar

Based on a substantial understanding of C++, this course introduces the further concepts of ANSI/ISO C++ that hadn’t or had just been partly implemented in previous standards. Doing this, particular attention is given to the techniques of the standard library and generative programming. Template programming as a significant extension of ANSI/ISO C++, as opposed to older C++ dialects, led to a change of paradigm in the architecture of the standard library. It enables this paradigm changeover also for personal architectures and opens up brand new application areas and possibilities to use the language in projects. The different parts of C++ from the various standards will be distinguished from each other and put into relation to each other. In addition to this, opportunities and consequences of using various modern techniques are demonstrated through hands-on examples.

The following subject matters are covered:

  • Overview over the standard library
  • Namespaces and the using directive
  • The ISO C++ standard
  • Stream Classes (methods, operations and manipulators)
  • Strings
  • The Copy Constructor
  • Virtual Destructors
  • Reimplementation of Virtual Methods
  • Static Elements
  • Static Methods
  • Nested Classes
  • Inheritance of Different Visibility
  • Virtual Inheritance
  • Scopes
  • Vtables and RTTI
  • Programming with Templates
  • Generic Programming
  • The Standard Template Library - STL
  • Containers in General
  • Lists
  • Vectors
  • Sets
  • Multisets
  • Maps
  • Multimaps
  • Iterators
  • Algorithms
  • Function Objects
  • Idioms in C++
  • Using Exception Handling
  • Important C++ References
  • Other…

The programming language is learned by means of practical examples. Any C++ compiler can be adopted for this purpose. GNU C++, Clang or MS Visual C++ are preferably used. The compiler is very important for this course: it should support the essential language properties of ANSI/ISO C++ relating to namespaces and name conventions. The development platform - preferably Windows, Mac OS X, Linux or UNIX - should be well known to the course participants. In addition to the above mentioned C++ subjects, current publications on ANSI/ISO C++ are also discussed.

Last modified 02.01.2021