The Curious Engineer

All blogs / C++

AndreasFertig.com

andreasfertig.com

Andreas posts at least once a month insightful articles about C++ topics ranging from C++11 to most modern C++ standards like C++26.

C++

Posts
245 from 1 Jan 2017 to 21 Oct 2026
Posting
weekly (29 in the last year)
Kind
personal blog
Feed
https://andreasfertig.com/feed.xml

2026 25

  1. C++ Insights Episode 79: consteval Function Propagation with C++ Insights
  2. Implicit promotion of consteval functions
  3. C++ Insights Episode 78: constexpr lambdas finally FIXED in C++ Insights
  4. Move in C++ without a std::move
  5. C++ Insights Episode 77: RVO, NRVO, std::move EXPLAINED
  6. More compile-time checks with std::nullptr_t
  7. C++ Insights Episode 76: New, better, lambda visualization in C++ Insights
  8. Keep It Tight: Restrict Variadic Templates Using C++20 Concepts
  9. C++ Insights new lambda transformation
  10. C++ Insights Episode 75: The Ref-Qualifier That Saves You from Undefined Behavior
  11. More C++26 reflection at compile-time
  12. C++ Insights Episode 74: Why move requires noexcept in C++20
  13. Happy 8th anniversary C++ Insights
  14. From Undefined to Defined: Using std::launder in C++
  15. C++ Insights Episode 73: Things you can do effortlessly with C++20s concepts
  16. Open-Enrollment classes in 2026
  17. iX Article: Neue Features in C++26
  18. What reinterpret_cast doesn't do
  19. C++ Insights Episode 72: Why you should never call a virtual member function in a constructor
  20. Best performance of a C++ singleton
  21. C++ Insights Episode 71: C++23: multidimensional operator[]
  22. Back to Basics: static, inline, const, and constexpr
  23. The Reset trick
  24. Efficiently passing a std::source_location object
  25. Singleton done right in C++

2025 43

  1. = default and uniform initialization - Best Practice Explained
  2. C++20s std::source_location in action
  3. C++20: Making constructors smarter with conditional explicit
  4. C++20s concepts with a forward declared type
  5. Second Edition: Master Modern C++ - With Me as Your Personal Guide
  6. C++23: Why if consteval can make your code better
  7. Forward declaring a type in C++: The good, and the bad
  8. How C++23 handles temporary objects in range-based for-loops
  9. Efficient C++: The hidden compile-time cost of auto return types
  10. C++26: Pack expansions for parameter packs
  11. Master Modern C++ - With Me as Your Personal Guide
  12. C++26 reflection at compile-time
  13. CppCon workshop: Safe and Efficient C++ for Embedded Environments
  14. C++20 Guideline: When to Use auto in Function Parameters
  15. A virtual destructor in C++, when?
  16. CI pipeline improvments for C++ Insights
  17. Faster C++ Builds: Optimize Templates for Speed
  18. Back to Basics: Object-Oriented Programming
  19. Lightning Talk: The UB Detector: constexpr
  20. C++ unspecified behavior explained by practical example
  21. C++23 Game Changer: Behind the curtains of deducing this
  22. C++ Insights now uses Clang 20
  23. An option(al) to surprise you
  24. Last week I recorded a 1hr workshop. Check out the recording!
  25. 1-day workshop: Safe and Efficient C++ for Embedded Environments
  26. C++20 NTTP Gets another Boost: Structural Types as Template Parameters
  27. Free 1-Hour C++ Training Class
  28. iX Article: C++20-Coroutinen, Teil 4: Stream-Parser
  29. The correct way to do type punning in C++ - The second act
  30. C++20 NTTP Gets a Boost: Floating point numbers as Template Parameters
  31. The correct way to do type punning in C++
  32. iX Article: C++20s Coroutinen - Ein Scheduler mit C++-Coroutinen
  33. C++ Insights' new C++ to C transformation
  34. 2025 updates
  35. C++ for embedded systems: constexpr and consteval
  36. iX Article: C++-Coroutinen einsetzen: Tasks und Generatoren
  37. C++Online workshop: Safe and Efficient C++ for Embedded Environments (compact)
  38. iX Article: C++20-Coroutinen effizient verwenden
  39. Fast and small C++ - When efficiency matters
  40. C++ Insights new show object lifetime transformation
  41. Fast and small C++ - When efficiency matters
  42. C++ Insights with Clang 19 and more
  43. How to use a constexpr std::string

2024 38

  1. More performance thanks to more implicit moves in C++20
  2. Master C++17 and C++20 with Live Coaching
  3. Write more C++ code thanks to constexpr
  4. iX Article: Ressourcen sparen mit der C++-Funktion constexpr
  5. C++ Insights: Peek behind the curtains of your C++ compiler
  6. Understanding the magic behind C++17's structured bindings
  7. Why is C++23 called 23?
  8. unique_ptr and the pointer to implementation idiom
  9. References are no pointers!
  10. Smart pointers and the pointer to implementation idiom
  11. You can't force a move!
  12. Understanding the inner workings of C++ smart pointers - The shared_ptr
  13. Write modern code with features of C++17 and C++20
  14. Mastering C++23: Leveraging if consteval for more constexpr functions
  15. CppCon Academy Workshop
  16. Understanding the inner workings of C++ smart pointers - The unique_ptr with custom deleter
  17. The Power of std::is_constant_evaluated(): Elevating Your Constexpr Code
  18. Understanding the inner workings of C++ smart pointers - The unique_ptr
  19. The magic of C++20s std::source_location
  20. Calling a C++ member function with a null object
  21. C++20’s Coroutines for Beginners
  22. What are the static operators [] and () in C++26
  23. Happy 6th anniversary C++ Insights
  24. Exploring the impact of top-level cv-qualifiers on type-deduction
  25. Why you shouldn't have virtual member functions with default parameters
  26. C++ Insights with Clang 18 and more
  27. Understanding the role of cv-qualifiers in function parameters
  28. Level Up Your C++ Skills: Essential Tools and Resources for Effective Practice
  29. Less typing for lambdas in C++23
  30. C++ top-level qualifiers explained
  31. C++ Insights new transformations
  32. Prefer user-defined literals when available
  33. Public classes 2024
  34. Aggregates: C++17 vs. C++20
  35. Updates to YouTube and training material in 2024
  36. Consider making your assignment operators lvalue only
  37. C++ Coroutines from scratch
  38. C++20 Concepts applied - Safe bitmasks using scoped enums

2023 30

  1. C++20s Designated Initializers
  2. When an empty destructor is required
  3. Compilers are lazy, and this is good
  4. Why you shouldn't provide an empty destructor
  5. A copy constructor cannot be a template
  6. C++ Feature Coroutines, Beginner Friendly
  7. Using C++23s constexpr unique_ptr
  8. C++ Insights now uses Clang 17
  9. C++ Coroutines from scratch
  10. C++ Insights now uses Clang 16
  11. C++20: When is a struct an aggregate
  12. Overload Article: C++20 Dynamic Allocations at Compile-time
  13. Best Speaker Award
  14. Control your numbers in C++
  15. How type-traits work
  16. A strongly typed bool
  17. The traps of returning references
  18. Visiting a std::variant safely
  19. Recursion-free templates with C++17s fold expressions
  20. constexpr functions: optimization vs guarantee
  21. User-provided vs. user-declared
  22. Happy 5th anniversary C++ Insights
  23. Evaluation order in C++ and uniform initialization
  24. C++20's range-based for-loop with initializer
  25. push_back vs emplace_back: When to use what
  26. Coroutine customization points
  27. static, inline, or an unnamed namespace what's the difference
  28. C++ Insights Vim plugin available
  29. Equality of a string class that is only instantiable at compile-time
  30. A string class that is only instantiable at compile-time

2022 21

  1. Use your programming language
  2. 5 Things you and your C++ team can Do Differently
  3. C++20s Coroutines for Beginners
  4. C++17's CTAD a sometimes underrated feature
  5. Use namespaces
  6. Code formatting for a programming book
  7. C++23 - std::expected, the superior way of returning a value or an error
  8. Book: Programming with C++20 - Updated GitHub code examples
  9. C++ Insights: Lambdas in unevaluated contexts
  10. C++ Insights lambda hunt
  11. The power of ref-qualifiers
  12. Using a new C++ standard - The pain of being at the cutting edge
  13. iX Article: Ressourcensparend programmieren - Lernen von der Embedded-Entwicklung
  14. Destructors and noexcept
  15. Happy anniversary C++ Insights
  16. Down with pointers
  17. How to achieve the rule of zero - an example
  18. A destructor, =default, and the move operations
  19. C++ Insights news flash - Clang 13 and more
  20. Why you should use std::move only rarely
  21. C++20 - Filling blanks

2021 34

  1. More than a year of virtual classes experience - The good parts
  2. The difference between static_assert and C++20's requires
  3. Book: Programming with C++20 - Paperback edition available
  4. Book: Programming with C++20 - What's your style preference?
  5. A Visual Studio Code extension for C++ Insights
  6. C++20 Modules: Reachability and Visibility
  7. Book: Programming with C++20 - Writing finished
  8. C++20 Modules: Controlling your interfaces
  9. C++20 Modules: The possible speedup
  10. C++20 Dynamic Allocations at Compile-time
  11. C++20: A neat trick with consteval
  12. 3-tages Schulung: Programmieren mit C++20
  13. Programming with C++20 book quiz - The winners
  14. C++20 ranges benefits: avoid dangling pointers
  15. Programming with C++20 book quiz
  16. Happy 3 year Birthday C++ Insights
  17. C++20 benefits: consistency with ranges
  18. Clean Code Workshop @Golem Akademie
  19. C++ Insights now uses Clang 12
  20. iX Article: Clean Code mit C++20, Teil 3
  21. Source code for Programming with C++20 - Concepts, Coroutines, Ranges, and more
  22. Can I touch a moved-from object
  23. Learn programming with modern C++ in five days
  24. iX Article: Clean Code mit C++20, Teil 2
  25. C++20: Five Features in Five Weeks
  26. Something you should know about structured bindings
  27. iX Article: Clean Code mit C++20, Teil 1
  28. New book project: Programming with C++20 - Concepts, Coroutines, Ranges, and more
  29. C++20: A coroutine based stream parser
  30. Clang and gcc on macOS Catalina - Finding the include paths
  31. Notebook C++ - Tips and Tricks with Templates is available as paperpack
  32. My setup for a live virtual class or talk
  33. Upcoming Events 2021
  34. C++20: Aggregate, POD, trivial type, standard layout class, what is what

2020 24

  1. C++ Insights code coverage on Windows
  2. C++ Insights: From Travis CI to GitHub Actions
  3. Under the covers of C++ lambdas - Part 3: Generic lambdas
  4. iX Article: always false
  5. Under the covers of C++ lambdas - Part 2: Captures, captures, captures
  6. Under the covers of C++ lambdas - Part 1: The static invoker
  7. Back to Basics: C++ Templates
  8. CppCon B2B Talk C++ Templates - Questions and Answers
  9. iX Article: Auto as NTTP
  10. C++20 Concepts: Subsumption rules
  11. Work with me at one of the upcoming events
  12. C++20 Concepts: Testing constrained functions
  13. How C++20 Concepts can simplify your code
  14. iX Article: C++-Tricks - Scoped Enums in C++
  15. Public appearances 2020
  16. Article about C++ Insights in iX magazine
  17. C++20: Inside of a spaceship
  18. C++ Insights - Episode 0: Hello, C++ Insights
  19. Live virtual training
  20. iX Article: C++-Tricks - Effizienterer Code mit Fold Expressions published
  21. C++ Insights updates
  22. Use named lambdas or pass them directly
  23. What could possibly go wrong?
  24. How to run a local instance of C++ Insights

2019 16

  1. My conference year 2019
  2. Gitpod and C++ Insights
  3. Coroutines in C++ Insights - The poll result
  4. Coroutines in C++ Insights
  5. Open Enrollment Class 2020: Programming with C++11 to C++17
  6. Short links for C++ Insights
  7. Upcoming Events 2019
  8. Happy Birthday C++ Insights
  9. C++ Insights - Lambdas
  10. C++ Insights - Variadic templates
  11. C++ Insights - Template instantiation
  12. C++ Insights - Type deduction
  13. C++ Insights - Implicit conversions
  14. Hello C++ Insights
  15. Public appearances 2019
  16. Using base class constructor

2018 4

  1. Early bird for "C++1x für eingebettete Systeme kompakt" ending soon
  2. Use of the comma operator
  3. C++: Be type-safe - The journey of determining the number of elements in an array - Andreas Fertig
  4. Public appearances 2018

2017 10

  1. Safer type casting with C++17
  2. New article: "About the C++ Core Guidelines"
  3. C++: Be type-safe - The journey of determining the number of elements in an array - Andreas Fertig
  4. Article "Nutzen Sie die Macht der Sprache" got published
  5. Keynote at Clean Code Days in Munich on June 21st
  6. New seminar: C++1x für eingebettete Systeme kompakt
  7. NDC { Oslo } 2017
  8. ADC++ schedule available now
  9. Meet me at ADC++ in May
  10. std::cout << "Hello, World";