Quo Vadis – Modernes C++
DONE: I have written almost 100 posts about C++20. Now, I want to ask you: What should be my next big topic? Make your choice in this poll.
First of all, here is an overview of my more than 300 posts, including C++20.
Now, let me take about the future of Modernes C++. I have three ideas: C++23, extending and embedding Python with C/C++, and templates. The poll is open for one week, including the 24.04. This means, in my next post I present your favourite and my plan to write about it.
Quo Vadis: Modernes C++
Make your choice:
[sexypolling id=”14″]
Maybe, you don’t know what to choose. Here is more information about each topic.
C++23
C++20 is just the starting point. There is work to be done in C++23 to fully integrate and use the potential of the Big Four in C++. Let me give you a few ideas about the near C++ future.
- The Standard Template Library was designed by Alexander Stephanov with concepts in mind. Still, the integration of concepts is missing in C++20.
- We can expect a modularized Standard Template Library and hope for a packaging system in C++.
- Many algorithms known from functional programming are still missing in the ranges library. A future C++ standard should improve the interplay of the range algorithms and the standard containers.
- We don’t have coroutines. We only have a framework for building powerful coroutines. A coroutines library will be, with high probability, in C++23.
Ville Voutilainen’s proposal P0592R4 “To boldly suggest an overall plan for C++23” gives a first idea of the upcoming C++23 standard. Ville names seven features.
Modernes C++ Mentoring
Do you want to stay informed: Subscribe.
- C++23
- Library support for coroutine
- A modular standard library
- Executors
- Networking
- C++23 or later
- Reflection
- Pattern matching
- Contracts
Extending and Embedding Python with C/C++
Python is very communicative. On the one hand, it is very easy to call C/C++ functionality from Python (extend), and on the other hand, Python can be used directly from a C/C++ runtime (embed). Extend allows you to offload performance-critical parts of your program to C/C++. Thanks to embedding a Python interpreter in your C/C++ application, the C/C++ application has a scripting interface.
A few days ago, I gave a German presentation at the EnterPy2021 about extending and embedding Python with C/C++. Here is the presentation.
Templates
The future of C++ speaks templates. Sadly, most C++ professionals don’t know templates sufficiently well enough. My idea is to provide you with the details about templates. Here is my rough plan:
- Basics
- Function templates
- Class templates
- Template parameters
- Template arguments
- Specialization
- Details
- Template Instantiation
- Variadic Templates
- Fold Expressions
- Friends
- Dependent Names
- Techniques
- Automatic return type
- Template metaprogramming
- Type traits
- constexpr
- constexpr if
- Design
- Static versus dynamic polymorphism
- CRTP (curiously recurring template pattern)
- Expression templates
- Idioms and patterns
- C++20
- Concepts
Guest Posts
if you want to write an interesting post about C++, I’m happy to publish it on my blogs. This means I publish it on my German and English blogs. You can write it in your mother tongue. I translate it into the another language. You can expect 10.000 – 100.00 readers.
What’s next?
Depending on your choice, I present in my next post a detailed plan about my future posts.
Thanks a lot to my Patreon Supporters: Matt Braun, Roman Postanciuc, Tobias Zindl, G Prvulovic, Reinhold Dröge, Abernitzke, Frank Grimm, Sakib, Broeserl, António Pina, Sergey Agafyin, Андрей Бурмистров, Jake, GS, Lawton Shoemake, Jozo Leko, John Breland, Venkat Nandam, Jose Francisco, Douglas Tinkham, Kuchlong Kuchlong, Robert Blanch, Truels Wissneth, Mario Luoni, Friedrich Huber, lennonli, Pramod Tikare Muralidhara, Peter Ware, Daniel Hufschläger, Alessandro Pezzato, Bob Perry, Satish Vangipuram, Andi Ireland, Richard Ohnemus, Michael Dunsky, Leo Goodstadt, John Wiederhirn, Yacob Cohen-Arazi, Florian Tischler, Robin Furness, Michael Young, Holger Detering, Bernd Mühlhaus, Stephen Kelley, Kyle Dean, Tusar Palauri, Juan Dent, George Liao, Daniel Ceperley, Jon T Hess, Stephen Totten, Wolfgang Fütterer, Matthias Grün, Phillip Diekmann, Ben Atakora, Ann Shatoff, Rob North, Bhavith C Achar, Marco Parri Empoli, Philipp Lenk, Charles-Jianye Chen, Keith Jeffery, Matt Godbolt, and Honey Sukesan.
Thanks, in particular, to Jon Hess, Lakshman, Christian Wittenhorst, Sherhy Pyton, Dendi Suhubdy, Sudhakar Belagurusamy, Richard Sargeant, Rusty Fleming, John Nebel, Mipko, Alicja Kaminska, Slavko Radman, and David Poole.
My special thanks to Embarcadero | |
My special thanks to PVS-Studio | |
My special thanks to Tipi.build | |
My special thanks to Take Up Code | |
My special thanks to SHAVEDYAKS |
Modernes C++ GmbH
Modernes C++ Mentoring (English)
Rainer Grimm
Yalovastraße 20
72108 Rottenburg
Mail: schulung@ModernesCpp.de
Mentoring: www.ModernesCpp.org
Modernes C++ Mentoring,
Leave a Reply
Want to join the discussion?Feel free to contribute!