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.
- 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
- C++ Insights Episode 79: consteval Function Propagation with C++ Insights
- Implicit promotion of consteval functions
- C++ Insights Episode 78: constexpr lambdas finally FIXED in C++ Insights
- Move in C++ without a std::move
- C++ Insights Episode 77: RVO, NRVO, std::move EXPLAINED
- More compile-time checks with std::nullptr_t
- C++ Insights Episode 76: New, better, lambda visualization in C++ Insights
- Keep It Tight: Restrict Variadic Templates Using C++20 Concepts
- C++ Insights new lambda transformation
- C++ Insights Episode 75: The Ref-Qualifier That Saves You from Undefined Behavior
- More C++26 reflection at compile-time
- C++ Insights Episode 74: Why move requires noexcept in C++20
- Happy 8th anniversary C++ Insights
- From Undefined to Defined: Using std::launder in C++
- C++ Insights Episode 73: Things you can do effortlessly with C++20s concepts
- Open-Enrollment classes in 2026
- iX Article: Neue Features in C++26
- What reinterpret_cast doesn't do
- C++ Insights Episode 72: Why you should never call a virtual member function in a constructor
- Best performance of a C++ singleton
- C++ Insights Episode 71: C++23: multidimensional operator[]
- Back to Basics: static, inline, const, and constexpr
- The Reset trick
- Efficiently passing a std::source_location object
- Singleton done right in C++
2025 43
- = default and uniform initialization - Best Practice Explained
- C++20s std::source_location in action
- C++20: Making constructors smarter with conditional explicit
- C++20s concepts with a forward declared type
- Second Edition: Master Modern C++ - With Me as Your Personal Guide
- C++23: Why if consteval can make your code better
- Forward declaring a type in C++: The good, and the bad
- How C++23 handles temporary objects in range-based for-loops
- Efficient C++: The hidden compile-time cost of auto return types
- C++26: Pack expansions for parameter packs
- Master Modern C++ - With Me as Your Personal Guide
- C++26 reflection at compile-time
- CppCon workshop: Safe and Efficient C++ for Embedded Environments
- C++20 Guideline: When to Use auto in Function Parameters
- A virtual destructor in C++, when?
- CI pipeline improvments for C++ Insights
- Faster C++ Builds: Optimize Templates for Speed
- Back to Basics: Object-Oriented Programming
- Lightning Talk: The UB Detector: constexpr
- C++ unspecified behavior explained by practical example
- C++23 Game Changer: Behind the curtains of deducing this
- C++ Insights now uses Clang 20
- An option(al) to surprise you
- Last week I recorded a 1hr workshop. Check out the recording!
- 1-day workshop: Safe and Efficient C++ for Embedded Environments
- C++20 NTTP Gets another Boost: Structural Types as Template Parameters
- Free 1-Hour C++ Training Class
- iX Article: C++20-Coroutinen, Teil 4: Stream-Parser
- The correct way to do type punning in C++ - The second act
- C++20 NTTP Gets a Boost: Floating point numbers as Template Parameters
- The correct way to do type punning in C++
- iX Article: C++20s Coroutinen - Ein Scheduler mit C++-Coroutinen
- C++ Insights' new C++ to C transformation
- 2025 updates
- C++ for embedded systems: constexpr and consteval
- iX Article: C++-Coroutinen einsetzen: Tasks und Generatoren
- C++Online workshop: Safe and Efficient C++ for Embedded Environments (compact)
- iX Article: C++20-Coroutinen effizient verwenden
- Fast and small C++ - When efficiency matters
- C++ Insights new show object lifetime transformation
- Fast and small C++ - When efficiency matters
- C++ Insights with Clang 19 and more
- How to use a constexpr std::string
2024 38
- More performance thanks to more implicit moves in C++20
- Master C++17 and C++20 with Live Coaching
- Write more C++ code thanks to constexpr
- iX Article: Ressourcen sparen mit der C++-Funktion constexpr
- C++ Insights: Peek behind the curtains of your C++ compiler
- Understanding the magic behind C++17's structured bindings
- Why is C++23 called 23?
- unique_ptr and the pointer to implementation idiom
- References are no pointers!
- Smart pointers and the pointer to implementation idiom
- You can't force a move!
- Understanding the inner workings of C++ smart pointers - The shared_ptr
- Write modern code with features of C++17 and C++20
- Mastering C++23: Leveraging if consteval for more constexpr functions
- CppCon Academy Workshop
- Understanding the inner workings of C++ smart pointers - The unique_ptr with custom deleter
- The Power of std::is_constant_evaluated(): Elevating Your Constexpr Code
- Understanding the inner workings of C++ smart pointers - The unique_ptr
- The magic of C++20s std::source_location
- Calling a C++ member function with a null object
- C++20’s Coroutines for Beginners
- What are the static operators [] and () in C++26
- Happy 6th anniversary C++ Insights
- Exploring the impact of top-level cv-qualifiers on type-deduction
- Why you shouldn't have virtual member functions with default parameters
- C++ Insights with Clang 18 and more
- Understanding the role of cv-qualifiers in function parameters
- Level Up Your C++ Skills: Essential Tools and Resources for Effective Practice
- Less typing for lambdas in C++23
- C++ top-level qualifiers explained
- C++ Insights new transformations
- Prefer user-defined literals when available
- Public classes 2024
- Aggregates: C++17 vs. C++20
- Updates to YouTube and training material in 2024
- Consider making your assignment operators lvalue only
- C++ Coroutines from scratch
- C++20 Concepts applied - Safe bitmasks using scoped enums
2023 30
- C++20s Designated Initializers
- When an empty destructor is required
- Compilers are lazy, and this is good
- Why you shouldn't provide an empty destructor
- A copy constructor cannot be a template
- C++ Feature Coroutines, Beginner Friendly
- Using C++23s constexpr unique_ptr
- C++ Insights now uses Clang 17
- C++ Coroutines from scratch
- C++ Insights now uses Clang 16
- C++20: When is a struct an aggregate
- Overload Article: C++20 Dynamic Allocations at Compile-time
- Best Speaker Award
- Control your numbers in C++
- How type-traits work
- A strongly typed bool
- The traps of returning references
- Visiting a std::variant safely
- Recursion-free templates with C++17s fold expressions
- constexpr functions: optimization vs guarantee
- User-provided vs. user-declared
- Happy 5th anniversary C++ Insights
- Evaluation order in C++ and uniform initialization
- C++20's range-based for-loop with initializer
- push_back vs emplace_back: When to use what
- Coroutine customization points
- static, inline, or an unnamed namespace what's the difference
- C++ Insights Vim plugin available
- Equality of a string class that is only instantiable at compile-time
- A string class that is only instantiable at compile-time
2022 21
- Use your programming language
- 5 Things you and your C++ team can Do Differently
- C++20s Coroutines for Beginners
- C++17's CTAD a sometimes underrated feature
- Use namespaces
- Code formatting for a programming book
- C++23 - std::expected, the superior way of returning a value or an error
- Book: Programming with C++20 - Updated GitHub code examples
- C++ Insights: Lambdas in unevaluated contexts
- C++ Insights lambda hunt
- The power of ref-qualifiers
- Using a new C++ standard - The pain of being at the cutting edge
- iX Article: Ressourcensparend programmieren - Lernen von der Embedded-Entwicklung
- Destructors and noexcept
- Happy anniversary C++ Insights
- Down with pointers
- How to achieve the rule of zero - an example
- A destructor, =default, and the move operations
- C++ Insights news flash - Clang 13 and more
- Why you should use std::move only rarely
- C++20 - Filling blanks
2021 34
- More than a year of virtual classes experience - The good parts
- The difference between static_assert and C++20's requires
- Book: Programming with C++20 - Paperback edition available
- Book: Programming with C++20 - What's your style preference?
- A Visual Studio Code extension for C++ Insights
- C++20 Modules: Reachability and Visibility
- Book: Programming with C++20 - Writing finished
- C++20 Modules: Controlling your interfaces
- C++20 Modules: The possible speedup
- C++20 Dynamic Allocations at Compile-time
- C++20: A neat trick with consteval
- 3-tages Schulung: Programmieren mit C++20
- Programming with C++20 book quiz - The winners
- C++20 ranges benefits: avoid dangling pointers
- Programming with C++20 book quiz
- Happy 3 year Birthday C++ Insights
- C++20 benefits: consistency with ranges
- Clean Code Workshop @Golem Akademie
- C++ Insights now uses Clang 12
- iX Article: Clean Code mit C++20, Teil 3
- Source code for Programming with C++20 - Concepts, Coroutines, Ranges, and more
- Can I touch a moved-from object
- Learn programming with modern C++ in five days
- iX Article: Clean Code mit C++20, Teil 2
- C++20: Five Features in Five Weeks
- Something you should know about structured bindings
- iX Article: Clean Code mit C++20, Teil 1
- New book project: Programming with C++20 - Concepts, Coroutines, Ranges, and more
- C++20: A coroutine based stream parser
- Clang and gcc on macOS Catalina - Finding the include paths
- Notebook C++ - Tips and Tricks with Templates is available as paperpack
- My setup for a live virtual class or talk
- Upcoming Events 2021
- C++20: Aggregate, POD, trivial type, standard layout class, what is what
2020 24
- C++ Insights code coverage on Windows
- C++ Insights: From Travis CI to GitHub Actions
- Under the covers of C++ lambdas - Part 3: Generic lambdas
- iX Article: always false
- Under the covers of C++ lambdas - Part 2: Captures, captures, captures
- Under the covers of C++ lambdas - Part 1: The static invoker
- Back to Basics: C++ Templates
- CppCon B2B Talk C++ Templates - Questions and Answers
- iX Article: Auto as NTTP
- C++20 Concepts: Subsumption rules
- Work with me at one of the upcoming events
- C++20 Concepts: Testing constrained functions
- How C++20 Concepts can simplify your code
- iX Article: C++-Tricks - Scoped Enums in C++
- Public appearances 2020
- Article about C++ Insights in iX magazine
- C++20: Inside of a spaceship
- C++ Insights - Episode 0: Hello, C++ Insights
- Live virtual training
- iX Article: C++-Tricks - Effizienterer Code mit Fold Expressions published
- C++ Insights updates
- Use named lambdas or pass them directly
- What could possibly go wrong?
- How to run a local instance of C++ Insights
2019 16
- My conference year 2019
- Gitpod and C++ Insights
- Coroutines in C++ Insights - The poll result
- Coroutines in C++ Insights
- Open Enrollment Class 2020: Programming with C++11 to C++17
- Short links for C++ Insights
- Upcoming Events 2019
- Happy Birthday C++ Insights
- C++ Insights - Lambdas
- C++ Insights - Variadic templates
- C++ Insights - Template instantiation
- C++ Insights - Type deduction
- C++ Insights - Implicit conversions
- Hello C++ Insights
- Public appearances 2019
- Using base class constructor
2018 4
2017 10
- Safer type casting with C++17
- New article: "About the C++ Core Guidelines"
- C++: Be type-safe - The journey of determining the number of elements in an array - Andreas Fertig
- Article "Nutzen Sie die Macht der Sprache" got published
- Keynote at Clean Code Days in Munich on June 21st
- New seminar: C++1x für eingebettete Systeme kompakt
- NDC { Oslo } 2017
- ADC++ schedule available now
- Meet me at ADC++ in May
- std::cout << "Hello, World";