This page is the starting point for my blog Modernes C++. A simple overview of my existing and upcoming posts.
This overview serves two purposes. At first, the structure gives you in one view an overview, which posts are already written and how you can find them. At second, I give you an outline of all posts, which will be written. I will successively refine the outline to make the future of this post transparent. This purpose is a more challenging task for me.
Multithreading in modern C++
C++ memory model
- Overview
- Atomic data types
- Synchronization and ordering constraints
- The different C++ memory models
- Sequential consistency
- Acquire-release semantic
- Wait and Sleep
- Fences
- Algorithms
The threading interface
- Threads
- Thread-local data
- Condition variables
- Tasks
- Condition variables versus tasks for the synchronization of threads
- Challenges
Multithreading with C++17 and C++20
Application of multithreading
- The time library
- Ongoing optimization with CppMem
- Singleton
- Calculating the sum of a std::vector
Embedded programming with C++
High safety requirements
- C++11
- Automatic type deduction with auto
- Prevent narrowing with {} initialization
- Guarantees at compile time with static_assert and the type-traits library
- User-defined literals
- Strong typed enumerations
- override and final
- The null pointer constant nullptr
Performance matters
- C++98
- C++11
- Constant expressions
- Optimization with the type-traits library
- Multithreading interface
- C++ memory model
- Hashtables
- Generalized PODs
- noexcept
- Constant expressions
- C++14
Careful handling of resources
- Overview
- Automatic memory management
- Smart pointers
- The STL containers
- Smart pointers
- C++ idioms
- Explicit memory management
Functional programming with C++
- Overview
- Functional Feature in C++
- The definition
- Characteristics of functional programming
- Functional programming with C++17 and C++20
C++17
- Core language
- Library
- std::byte
- std::filesystem
- std::string_view
- std::any, std::optional, and std::variant
- The new algorithm of the STL
- Improved associative containers and uniform container access
C++20
- The Next Big Thing: C++20
- Overview
- Details
- Concepts
- Ranges Library
- Coroutines
- A First Overview
- More Details
- An Infinite Data Stream with Coroutines
- Thread Synchronization with Coroutines
- cppcoro
co_return
:co_yield:
- co_await
- Modules
- The Core Language
- The Library
- Concurrency
C++ Core Guidelines
- Two highly valuable resources
- Why do we need guidelines for modern C++?
- The C++ Core Guidelines:
- The Philosophy
- Interfaces I
- Interfaces II
- Guideline Support Library
- Functions
- Classes
- Enums
- Resources
- Expressions and Statements
- Performance
- Concurrency and Parallelism
- Rules to Concurrency and Parallelism
- More Rules to Concurrency and Parallelism
- Tools to Validate Concurrent-Code
- Sharing Data between Threads
- Taking Care of your Child
- More Traps in the Concurrency
- Be Aware of the Traps of Condition Variables
- Concurrency and lock-free Programming
- The Resolution of the Riddle
- The Remaining Rules to lock-free Programming
- Error Handling
- Templates and Generic Programming
- Rules for Templates and Generic Programming
- Type Erasure
- Type Erasure with Templates
- Better Specific or Generic?
- Usage of Concepts
- Definition of Concepts
- Definition of Concepts 2
- Pass Function Objects as Operations
- Template Interfaces
- Regular and SemiRegular Types
- Surprises with Argument-Dependent Lookup
- Template Definitions
- Ordering of User-Defined Types
- Templates and Hierarchies
- Rules for Variadic Templates
- Rules for Template Metaprogramming
- Programming at Compile Time
- Programming at Compile Time with the Type-Traits
- Programming at Compile Time with the Type-Traits (The Second)
- Programming at Compile Time with constexpr
- Other Template Rules
- Surprise Includes with Function Template Specialisation
- Templates: Misconceptions and Surprises
- Types, Non-Types, and Templates as Template Parameters
- C-Style Programming
- Source
- The Standard Library
- The Standard Library
- std::array and std::vector are your Friends
- More special Friends with std::map and std::unordered_map
- Avoid Bounds Errors
- Rules for Strings
- Iostreams
- In- and Output with Streams
- Improved Performance with Iostreams
- The Regular Expression Library
- More Rules to the Regular Expression Library
- When RAII breaks
- Supporting Sections
Reviews
News
- No New New
- CppCon 2018
- Meeting Embedded and Meeting C++ 2018
- Compiler Explorer, PVS-Studio, and Terrible Simple Bugs
Tools
Thanks a lot to my Patreon Supporters: Matt Braun, Roman Postanciuc, Tobias Zindl, Marko, G Prvulovic, Reinhold Dröge, Abernitzke, Frank Grimm, Sakib, Broeserl, António Pina, Sergey Agafyin, Андрей Бурмистров, Jake, GS, Lawton Shoemake, Animus24, Jozo Leko, John Breland, espkk, Wolfgang Gärtner, Louis St-Amour, Stephan Roslen, Venkat Nandam, Jose Francisco, Douglas Tinkham, Kuchlong Kuchlong, Avi Kohn, Robert Blanch, Truels Wissneth, Kris Kafka, Mario Luoni, Neil Wang, Friedrich Huber, lennonli, Pramod Tikare Muralidhara, Peter Ware, Tobi Heideman, Daniel Hufschläger, Red Trip, Alexander Schwarz, and Tornike Porchxidze.
Thanks in particular to Jon Hess, Lakshman, Christian Wittenhorst, Sherhy Pyton, Dendi Suhubdy, Sudhakar Belagurusamy, and Richard Sargeant.
My special thanks to Embarcadero
Seminars
I'm happy to give online-seminars or face-to-face seminars world-wide. Please call me if you have any questions.
Bookable (Online)
Deutsch
- Embedded Programmierung mit modernem C++: 12.04.2021 - 14.04.2021, Termingarantie
- Clean Code mit modernem C++: 22.06.2021 - 24.06.2021
- C++20: 10.08.2021 - 12.08.2021
English
- Workshop: Coroutines in C++20: 06.04.2021 (17:00 - 21:00 CEST)
Standard Seminars
Here is a compilation of my standard seminars. These seminars are only meant to give you a first orientation.
- C++ - The Core Language
- C++ - The Standard Library
- C++ - Compact
- C++11 and C++14
- Concurrency with Modern C++
- Design Patterns and Architecture Patterns with C++
- Embedded Programming with Modern C++
- Generic Programming (Templates) with C++
New
Contact Me
- Tel.: +49 7472 917441
- Mobil: +49 152 31965939
- Mail: This email address is being protected from spambots. You need JavaScript enabled to view it.
- German Seminar Page: www.ModernesCpp.de
- English Seminar Page: www.ModernesCpp.net
Read more...