MC++ BLOG
Der Blog für Modernes C++ von Rainer Grimm
- Posts
- 705 from 4 Oct 2015 to 18 Oct 2026
- Posting
- now and then (2 in the last year)
- Kind
- personal blog
- Feed
- https://www.modernescpp.com/index.php/feed/
2026 2
2025 36
- My ALS Journey (31/31): The End
- Small Safety Improvements in the C++ 26 Core Language
- My ALS Journey (30/n): Cippi at the CppCon
- Contracts: Evaluation Semantic
- My ALS Journey (29/n): I feel Good
- Contracts: A Deep Dive
- My ALS Journey (28/n): Bureaucracy – The German Disease
- Data-Parallel Types: Algorithms
- My ALS Journey (27/n): An Emergency Call
- Data-Parallel Types: Reduction
- My ALS Journey (26/n): Cippi’s first Adventures
- Data-Parallel Types: simd_mask
- My ALS Journey (25/n): Small and Big Hurdles
- Data-Parallel Types – A First Example
- My ALS Journey (24/n): Cippi’s World Tour
- Data-Parallel Types (SIMD)
- Read-copy-update (RCU)
- atomic<shared_ptr<>> by Oliver Schädlich
- My ALS Journey (23/n): Cippi
- Hazard Pointers in C++26
- My ALS Journey (22/n): Call for Collaboration
- A Lock-Free Stack: A Hazard Pointer Implementation Explained II
- A Lock-Free Stack: A Hazard Pointer Implementation Explained I
- My ALS Journey (21/n): ALS Fundraiser by Jen and Jason
- A Lock-Free Stack: A Hazard Pointer Implementation
- A Lock-Free Stack: A Simple Garbage Collector
- A Lock-Free Stack: Atomic Smart Pointer
- A Lock-Free Stack: A Complete Implementation
- My ALS Journey (20/n): Aids
- My Next Mentoring Program: “Generic Programming (Templates) with C++” starts
- A Lock-Free Stack: A Simplified Implementation
- Deferred Reclamation in C++26: Read-Copy Update and Hazard Pointers
- std::format Extension
- C++26 Library: string and string_view Processing
- My ALS Journey (19/n): The Never Ending Story
- My Next Mentoring Program: ” Embedded Programming with Modern C++” starts
2024 65
- Last Chance- 1 Day Left
- std::execution: More Senders
- Christmas Special – 5 Days Left
- Christmas Special – 7 Days Left
- My ALS Journey (18/n): C++ and ALS
- std::execution: Sender
- std::execution: Composition of Senders
- std::execution: Inclusive Scan
- Christmas Special
- std::execution: Asynchronous Algorithms
- My ALS Journey (17/n): Christmas Special
- std::execution
- C++26 Core Language: Small Improvements
- My ALS Journey (16/n): Good Bye Training / Hello Mentoring
- Placeholders and Extended Character Set
- Contracts in C++26
- Reflection in C++26: Determine the Layout
- My ALS Journey (15/n): A typical Day
- Reflection in C++26: Metafunctions for Enums and Classes
- Reflection in C++26: Metafunctions
- Reflection in C++26
- An Overview of C++26: Concurrency
- My ALS Journey (14/n): My Status Quo
- An Overview Of C++26: The Library – Math
- An Overview of C++26: The Library
- An Overview of C++26: Core Language
- C++26: The Next C++ Standard
- My ALS Journey (13/n): Next Steps
- Table of Content
- C++23: This and That
- Feature Testing Macros
- My ALS Journey (12/n): My Legacy
- Cooperative Interruption of a Thread in C++20: Callbacks
- Cooperative Interruption of a Thread in C++20
- My ALS Journey: 11/n
- Chrono: Input
- Chrono I/O: Unformatted and Formatted
- My ALS Journey: 10/n
- Chrono I/O
- Time Zones: Online Classes
- Time Zones: Details
- My ALS Journey: 9/n with Hector
- C++20: Query Calendar Dates and Ordinal Dates
- C++20: Displaying and Checking Calendar Dates
- C++20: Creating Calendar Dates
- My ALS Journey: 8/n with Easter Present
- C++20: Time of Day
- C++20: Basic Chrono Terminology with Time Duration and Time Point
- My Next Mentoring Program: “Concurrency with Modern C++” starts
- C++20: Basic Chrono Terminology
- My ALS Journey: 7/n
- More Details to Formatting User-Defined Types in C++20
- My ALS Journey: 6/n
- Formatting User-Defined Types in C++20
- Presentation of my Mentoring Programs (Including “Concurrency with Modern C++”)
- My Next Mentoring Program: “Concurrency with Modern C++”
- The Formatting Library in C++20: The Format String (2)
- My ALS Journey: 5/n
- The Formatting Library in C++20: The Format String
- Printed Version of “Concurrency with Modern C++” on Amazon
- The Formatting Library in C++20
- My ALS Journey: 4/n
- std::span in C++20: More Details
- Our Money-Raising Campaign for ALS Research
- The autogenerated Equality Operator
2023 82
- My ALS Journey: 3/n
- The Second Edition of my C++20 Book on Amazon
- A Coroutines-Based Single Consumer – Single Producer Workflow by Ljubic Damir
- A Bug in the Priority Scheduler for Coroutines
- My ALS Journey: 2/n
- An Advanced Priority Scheduler for Coroutines
- A Priority Scheduler for Coroutines
- Coroutines: A Scheduler for Tasks by Dian-Lun Lin
- Thank You for Your Support: 1/n
- A Concise Introduction to Coroutines by Dian-Lun Lin
- The Ranges Library in C++20: More Design Choices
- The Ranges Library in C++20: Design Choices
- My very Serious Progressive Nerve Condition
- C++20: More Details about Module Support of the Big Three
- C++20: Module Support of the Big Three
- Optimization with Allocators in C++17
- Special Allocators with C++17
- Polymorphic Allocators in C++17
- C++23: Ranges Improvements and std::generator
- The Final Version of my C++20 Book
- C++23: A Multidimensional View
- C++23: Four new Associative Containers
- C++23: A New Way of Error Handling with std::expected
- C++23: A Modularized Standard Library, std::print and std::println
- 60 terrible tips for a C++ developer
- C++ Parallel STL Benchmark
- Two Days Left: Early Bird Price for my Mentoring Program “C++20: Get the Details”
- C++23: More Small Pearls
- 1 Week Left: Early Bird Price for my Mentoring Program “C++20: Get the Details”
- My New Blog
- Presentation of my Mentoring Programs (Including “C++20: Get the Details”)
- C++23: The Small Pearls in the Core Language
- 2 Weeks Left: Early Bird Price for my Mentoring Program “C++20: Get the Details”
- C++23: Syntactic Sugar with Deducing This
- 30 Days Left: Early Bird Price for my Mentoring Program “C++20: Get the Details”
- C++23: Deducing This
- Registration is Open for my New Mentoring Program, “C++20: Get the Details”
- C++23: The Next C++ Standard
- Presentation of my Mentoring Programs (Including “C++20: Get the Details”)
- Thread-Safe Queue – Two Serious Errors
- Monitor Object
- Active Object
- Dealing with Mutation: Guarded Suspension
- Dealing with Mutation: Thread-Safe Interface
- Dealing with Mutation: Locking
- Dealing with Sharing
- Concurrency Patterns
- My Next Mentoring Program: “C++20: Get the Details”
- Reactor
- Model-View-Controller
- Broker
- Lack of Training Culture: Why the Cultureless Don’t Stand a Chance
- Pipes-and-Filters
- Layers
- Table of Content
- The Time Library
- Multithreading with C++17 and C++20
- Multithreading in Modern C++
- Printed Version of “The C++ Standard Library” on Amazon
- Architectural Patterns
- Presentation next Monday: Concurrency Patterns with Rainer Grimm
- The Lack of Training Culture: You unlearned Learning
- How can you recognise a good software architecture?
- Idioms for Polymorphism and Templates
- The C++ Standard Library: The Fourth Edition includes C++23
- Covariant Return Type
- Webinar: How to get a job at a high-frequency trading digital-assets shop
- One Day left: Early Bird Price for my Mentoring Program “Design Patterns and Architectural Patterns with C++”
- One Day left: Early Bird Price for my Mentoring Program “Design Patterns and Architectural Patterns with C++”
- The Lack of Training Culture: You hire for Skills but not for Attitude
- 45% Student Discount for my Mentoring Program: “Design Patterns and Architectural Patterns with C++”
- The Iterator Protocol
- One Week left: Early Bird Price for my Mentoring Program “Design Patterns and Architectural Patterns with C++”
- The Null Object Pattern
- Value Objects
- 20 Days Left: Early Bird Price for my Mentoring Program “Design Patterns and Architectural Patterns with C++”
- Regular Types
- The Lack of Training Culture: An Employer must support their Employees
- The Rule of Zero, or Six
- Argument-Dependent Lookup and the Hidden Friend Idiom
- Partial Function Application
- The Lack of Training Culture: Four Signs
2022 75
- An Interview that went Viral
- What Mentees say About my Mentoring
- Early Bird Price for my Mentoring Program “Design Patterns and Architectural Patterns with C++”
- The Copy-and-Swap Idiom
- Webinar: C++ with Python for Algorithmic Trading
- Registration is Open for my Mentoring Program “Design Patterns and Architectural Patterns with C++”
- The Template Method
- The Visitor Pattern
- The Observer Pattern
- The Proxy Pattern
- The Strategy Pattern
- The Facade Pattern
- The Composite Pattern
- The Decorator Pattern
- And the Five Winners for “Template Metaprogramming with C++” are
- The Bridge Pattern
- The Adapter Pattern
- Five Coupons for the eBook “Template Metaprogramming with C++”
- The Singleton: The Alternatives Monostate Pattern and Dependency Injection
- Concepts and the Finance Industry
- The Singleton: Pros and Cons
- The Singleton
- The Factory Method (Slicing and Ownership Semantics)
- Stop Training, Start Mentoring
- The Factory Method
- Anti-Patterns
- About Algorithms, Frameworks, and Pattern Relations
- The Structure of Patterns
- And the Five Winners for the “C++20 STL Cookbook” are
- Classification of Patterns
- Five Giveaway eBooks for “C++20 STL Cookbook”
- Classification of Design Patterns
- And the Five Winners for “C++ Core Guidelines: Best Practices for Modern C++”
- Training or Mentoring: What’s the Difference?
- C++ Core Guidelines Explained: Best Practices for Modern C++
- The History of Patterns
- The Advantages of Patterns
- I’m Nominated for the “2022 Business Worldwide CEO Awards”
- Design Patterns and Architectural Patterns with C++: A First Overview
- Ranges Improvements with C++23
- My Next Mentoring Program is “Design Patterns and Architectural Patterns with C++”
- Improved Iterators with Ranges
- My Next Mentoring Program
- Sentinels and Concepts with Ranges Algorithms
- Projections with Ranges
- The Ranges Library in C++20: More Details
- Check Types with Concepts
- Check Types with Concepts – The Motivation
- Using Requires Expression in C++20 as a Standalone Feature
- Defining Concepts with Requires Expressions
- C++ 20 Techniques for Algorithmic Trading
- Define Concepts
- Type Erasure
- 10 Days Left to Register Yourself for my Mentoring Program “Fundamentals for C++ Professionals”
- A std::advance Implementation with C++98, C++17, and C++20
- A Sample for my Mentoring Program “Fundamentals for C++ Professionals”
- Software Design with Traits and Tag Dispatching
- Registration is Open for my Mentoring Program “Fundamentals for C++ Professionals”
- Policy and traits
- Avoiding Temporaries with Expression Templates
- Help for the People in Ukraine
- Mixins
- The Launch of my Mentoring Program “Fundamentals for C++ Professionals”
- More about Dynamic and Static Polymorphism
- More About Me
- Dynamic and Static Polymorphism
- constexpr if
- constexpr and consteval Functions in C++20
- More Information about my Mentoring Program “Fundamentals for C++ Professionals”
- constexpr Functions
- An Update of my Book “Concurrency with Modern C++”
- The New pdf Bundle is Ready: C++20 Concurreny – The Hidden Pearls
- Dining Philosophers Problem III
- Dining Philosophers Problem II
- Dining Philosophers Problem I
2021 65
- My Mentoring Program “Fundamentals for C++ Professionals”
- Which pdf bundle do you want? Make your choice!
- The Type-Traits Library: Optimization
- The Type-Traits Library: Correctness
- The Type-Traits Library: std::is_base_of
- The Type-Traits Library: Type Comparisons
- And the Winners for the Seven Vouchers for Fedor’s Book “The Art of Writing Efficient Programs” are
- The Type-Traits Library: Type Checks
- Template Metaprogramming – Hybrid Programming
- Seven Voucher for Fedor G. Pikus Book “The Art of Writing Efficient Programs”
- Template Metaprogramming – How it Works
- Template Metaprogramming – How it All Started
- Automatic Return Type (C++11/14/20)
- Automatic Return Type (C++98)
- Dependent Names
- The Special Friendship of Templates
- Visiting a std::variant with the Overload Pattern
- Smart Tricks with Parameter Packs and Fold Expressions
- The New pdf Bundle is Ready: C++20 Modules
- Modern C++ Collection
- From Variadic Templates to Fold Expressions
- C++20 Modules: Private Module Fragment and Header Units
- The First Big Update of My C++20 Book
- Which pdf bundle do you want? Make your choice!
- More about Variadic Templates …
- Variadic Templates or the Power of Three Dots
- Template Instantiation
- And the Winners for the Five Vouchers for Stephan’s Book “Clean C++20” are
- Performance of the Parallel STL Algorithms
- Parallel Algorithms of the STL with the GCC Compiler
- Five Vouchers for Stephan Roth’s Book “Clean C++20” to Win
- Full Specialization of Function Templates
- Template Specialization – More Details About Class Templates
- Template Specialization
- Template Argument Deduction of Class Templates
- The New pdf Bundle is Ready: C++20 Coroutines
- Template Arguments
- Alias Templates and Template Parameters
- “Concurrency with Modern C++” Update to C++20
- Surprise Included: Inheritance and Member Functions of Class Templates
- Class Templates
- Which pdf bundle do you want? Make your choice!
- Function Templates – More Details about Explicit Template Arguments and Concepts
- Function Templates
- Templates – First Steps
- Printed Version of C++20 & Source Code on GitHub
- And The Winner is: Templates
- Quo Vadis – Modernes C++
- Automatically Resuming a Job with Coroutines on a Separate Thread
- Starting Jobs with Coroutines
- A Generic Data Stream with Coroutines in C++20
- An Infinite Data Stream with Coroutines in C++20
- Executing a Future in a Separate Thread with Coroutines
- Lazy Futures with Coroutines
- Implementing Simple Futures with Coroutines
- Synchronized Output Streams with C++20
- The Five (Seven) Winners of my C++20 book are:
- An Improved Thread with C++20
- Resolving C/C++ Concurrency Bugs More Efficiently with Time Travel Debugging
- Cooperative Interruption of a Thread in C++20
- Barriers and Atomic Smart Pointers in C++20
- Latches in C++20
- Semaphores in C++20
- And the Winners are:
- Five Vouchers to win for my book “C++20”
2020 60
- Performance Comparison of Condition Variables and Atomics in C++20
- I’m Proud to Present my New Book: C++20
- Synchronization with Atomics in C++20
- Atomic References with C++20
- Looking for Proofreaders for my New Book: C++20
- Bit Manipulation with C++20
- Feature Testing with C++20
- Safe Comparisons of Integrals with C++20
- Calendar and Time-Zones in C++20: Calendar Dates
- Calendar and Time-Zones in C++20: Time of Day
- Calendar and Time-Zones in C++20: Time-Zones
- More and More Utilities in C++20
- Calendar and Time-Zones in C++20: Handling Calendar Dates
- C++20: Extend std::format for User-Defined Types
- std::format in C++20
- More Convenience Functions for Containers with C++20
- constexpr std::vector and std::string in C++20
- std::span in C++20: Bounds-Safe Views for Sequences of Objects
- And the Winners are:
- Five Vouchers to win for the book “Modern C++ for Absolute Beginners”
- volatile and Other Small Improvements in C++20
- New Attributes with C++20
- Compiler Explorer, PVS-Studio, and Terrible Simple Bugs
- More Lambda Features with C++20
- The C++ Standard Library: The Third Edition includes C++20
- More Powerful Lambdas with C++20
- Various Template Improvements with C++20
- Solving the Static Initialization Order Fiasco with C++20
- Two new Keywords in C++20: consteval and constinit
- Designated Initializers
- C++20: Optimized Comparison with the Spaceship Operator
- C++20: More Details to the Spaceship Operator
- C++20: The Three-Way Comparison Operator
- C++20: Further Open Questions to Modules
- C++20: Structure Modules
- C++20: Module Interface Unit and Module Implementation Unit
- C++20: A Simple math Module
- Modernes C++ goes Worldwide
- C++20: The Advantages of Modules
- Face-to-Face Seminars and Online Seminars are different
- C++20: Thread Pools with cppcoro
- C++20: Powerful Coroutines with cppcoro
- C++20: Coroutines with cppcoro
- Four Voucher for Educative
- C++20: Thread Synchronization with Coroutines
- C++20: An Infinite Data Stream with Coroutines
- C++20: More Details to Coroutines
- Looking for Proofreaders for my new Book: C++ Core Guidelines
- C++20: Coroutines – A First Overview
- My Personal Words about Corona
- C++20: Python’s map Function
- C++20: Pythons range Function, the Second
- C++20: Pythonic with the Ranges Library
- C++20: Functional Patterns with the Ranges Library
- C++20: The Ranges Library
- Concepts in C++20: An Evolution or a Revolution?
- C++20: Define the Concept Regular and SemiRegular
- C++20: Define the Concepts Equal and Ordering
- C++20: Define Concepts
- C++20: Concepts – Predefined Concepts
2019 57
- C++20: Concepts – What we don’t get
- C++20: Concepts – Syntactic Sugar
- A Brief Overview of the PVS-Studio Static Code Analyzer
- C++20: Concepts, the Placeholder Syntax
- C++20: Concepts, the Details
- C++20: Two Extremes and the Rescue with Concepts
- C++20: Concurrency
- C++20: The Library
- C++ 20: The Core Language
- C++20: The Big Four
- The new pdf bundle is ready: C++ Core Guidelines: Performance
- The Next Big Thing: C++20
- “Concurrency with Modern C++” has a new chapter
- C++ Core Guidelines: Naming and Layout Rules
- C++ Core Guidelines: Lifetime Safety And Checking the Rules
- C++ Core Guidelines: Bounds Safety
- C++ Core Guidelines: Type Safety by Design
- C++ Core Guidelines: Type Safety
- C++ Core Guidelines: Profiles
- More Myths of My Blog Readers
- Which pdf bundle should I provide? Make your choice!
- Myths of My Blog Readers
- C++ Core Guidelines: More Non-Rules and Myths
- C++ Core Guidelines: Non-Rules and Myths
- C++ Core Guidelines: Supporting Sections
- C++ Core Guidelines: When RAII breaks
- More Rules about the Regular Expression Library
- The Regular Expression Library
- C++ Core Guidelines: Improved Performance with Iostreams
- Stuff you should know about In- and Output with Streams
- C++ Core Guidelines: IOstreams
- C++ Core Guidelines: Rules for Strings
- C++ Core Guidelines: Avoid Bounds Errors
- More special Friends with std::map and std::unordered_map
- C++ Core Guidelines: std::array and std::vector are your Friends
- C++ Core Guidelines: The Standard Library
- More Details to Modules
- Modules
- C++ Core Guidelines: The Remaining Rules about Source Files
- The new pdf bundle is available: C++ Core Guidlines – Templates and Generic Programming
- C++ Core Guidelines: Source Files
- C++ Insights – Lambdas
- C++ Insights – Variadic Templates
- C++ Insights – Template Instantiation
- C++ Insights – Type Deduction
- Which pdf bundle should I provide? Make your choice!
- C++ Insights – Implicit Conversions
- C++ Core Guidelines: Mixing C with C++
- Types-, Non-Types, and Templates as Template Parameters
- Templates: Misconceptions and Surprises
- C++ Core Guidelines: Surprise included with the Specialisation of Function Templates
- C++ Core Guidelines: Other Template Rules
- C++ Core Guidelines: Programming at Compile Time with constexpr
- C++ Core Guidelines: Programming at Compile Time with Type-Traits (The Second)
- C++ Core Guidelines: Programming at Compile Time with the Type-Traits
- C++ Core Guidelines: Programming at Compile Time
- C++ Core Guidelines: Rules for Template Metaprogramming
2018 62
- CppDepend – A Review
- C++ Core Guidelines: Rules for Variadic Templates
- C++ Core Guidelines: Rules for Templates and Hierarchies
- C++ Core Guidelines: Ordering of User-Defined Types
- C++ Core Guidelines: Template Definitions
- C++ Core Guidelines: Surprises with Argument-Dependent Lookup
- C++ Core Guidelines: Regular and SemiRegular Types
- Meeting Embedded and Meeting C++ 2018
- C++ Core Guidelines: Template Interfaces
- C++ Core Guidelines: Pass Function Objects as Operations
- I’m Proud to Present: The C++ Standard Library including C++14 & C++17
- C++ Core Guidelines: Definition of Concepts, the Second
- A new Thread with C++20: std::jthread
- C++ Core Guidelines: Rules for the Definition of Concepts
- C++ Core Guidelines: Rules for the Usage of Concepts
- CppCon 2018
- C++ Core Guidelines: Better Specific or Generic?
- C++ Core Guidelines: Type Erasure with Templates
- C++ Core Guidelines: Type Erasure
- C++ Core Guidelines: Rules for Templates and Generic Programming
- C++ Core Guidelines: Rules for Constants and Immutability
- The new pdf bundle is ready: C++ Core Guidelines – Concurrency and Parallelism
- C++ Core Gudelines: goto considered Evil
- For Free: Four Vouchers to Win
- C++ Core Guidelines: finally in C++
- I’m Proud to Present: Modern C++ Concurrency is available as interactive course
- C++ Core Guidelines: Rules about Exception Handling
- C++ Core Guidelines: The noexcept Specifier and Operator
- C++ Core Guidelines: A Short Detour to Contracts in C++20
- C++ Core Guidelines: Rules for Error Handling
- Which pdf bundle should I provide? Make your choice!
- C++ Core Guidelines: The Remaining Rules about Lock-Free Programming
- C++ Core Guidelines: The Resolution of the Riddle
- C++ Core Guidelines: Concurrency and lock-free Programming
- The End of my Detour: Unified Futures
- The Update of my Book “Concurreny with Modern C++”
- A Short Detour: Executors
- C++ Core Guidelines: Be Aware of the Traps of Condition Variables
- C++ Core Guidelines: More Traps in the Concurrency
- C++ Core Guidelines: Taking Care of your Child Thread
- C++ Core Guidelines: Sharing Data between Threads
- C++ Core Guidelines: Use Tools to Validate your Concurrent Code
- C++ Core Guidelines: More Rules about Concurrency and Parallelism
- C++ Core Guidelines: Rules for Concurrency and Parallelism
- The new pdf bundle is ready: Functional Features in C++
- C++ Core Guidelines: The Remaining Rules about Performance
- C++ Core Guidelines: More Rules about Performance
- The Truth about “Raw Pointers Removed from C++”
- No New New: Raw Pointers Removed from C++
- C++ Core Guidelines: Rules about Performance
- Which pdf bundle should I provide? Make your choice!
- C++ Core Guidelines: Rules about Statements and Arithmetic
- C++ Core Guidelines: More about Control Structures
- C++ Core Guidelines: To Switch or not to Switch, that is the Question
- C++ Core Guidelines: Rules for Statements
- C++ Core Guidelines: Rules about Don’ts
- C++ Core Guidelines: Rules for Conversions and Casts
- C++ Core Guidelines: More Rules for Expressions
- C++ Core Guidelines: Rules for Expressions
- C++ Core Guidelines: More Rules for Declarations
- C++ Core Guidelines: Declarations and Initialisations
- Clean C++
2017 101
- C++ Core Guidelines: Rules for Expressions and Statements
- C++ Core Guidelines: Passing Smart Pointers
- C++ Core Guidelines: Rules for Smart Pointers
- The new pdf bundle is available: Embedded – Performance Matters
- C++ Core Guidelines: Rules for Allocating and Deallocating
- C++ Core Guidelines: Rules about Resource Management
- C++ Core Guidelines: Rules for Enumerations
- Which pdf bundle should I provide? Make your choice!
- C++ Core Guidelines: Rules for Unions
- C++ Core Guidelines: More Rules for Overloading
- C++ Core Guidelines: Rules for Overloading and Overload Operators
- The C++ Standard Library: The Second Edition includes C++17
- C++ Core Guidelines: Accessing Objects in a Hierarchy
- C++ Core Guidelines: The Remaining Rules about Class Hierarchies
- The new pdf bundle is available: Functional Programming with C++17 and C++20
- C++ Core Guidelines: More Rules about Class Hierarchies
- C++ Core Guidelines: Class Hierarchies
- C++ Core Guidelines: Function Objects and Lambdas
- Which pdf bundle should I provide? Make your choice!
- C++ Core Guidelines: Comparison, Swap, and Hash
- C++ Core Guidelines: Rules for Copy and Move
- My open C++ Seminars in the First Half of 2018
- C++ Core Guidelines: Constructors
- The new pdf bundle is ready: C++17
- C++ Core Guidelines: Destructor Rules
- I Proudly present my Book is Ready “Concurrency with Modern C++”
- C++ Core Guidelines: The Rule of Zero, Five, or Six
- C++ Core Guidelines: Class Rules
- Which pdf bundle should I provide?
- C++ Core Guidelines: Semantic of Function Parameters and Return Values
- C++ Core Guidelines: The Rules for in, out, in-out, consume, and forward Function Parameter
- “Concurrency with Modern C++” is 95% complete; Including all Source Files
- C++ Core Guidelines: Function Definitions
- C++ Core Guideline: The Guideline Support Library
- My Book “Concurrency with Modern C++” is 75% complete
- C++ Core Guidelines: Interfaces II
- C++ Core Guidelines: Interfaces I
- My Book “Concurrency with Modern C++” is 50% complete
- C++ Core Guidelines: The Philosophy
- Get the Current Pdf Bundle: “Multithreading: The High-Level Interface”
- My Book “Concurrency with Modern C++” is 30% complete
- Why do we need Guidelines for Modern C++?
- What is Modern C++?
- The Winner is: Multithreading: The high-level Interface
- ABA – A is not the same as A
- Which pdf bundle should I provide? Make your cross!
- Blocking and Non-Blocking Algorithms
- Looking for Proofreaders for my new Book: Concurrency with Modern C++
- Malicious Race Conditions and Data Races
- Race Conditions versus Data Races
- C++17: Improved Associative Containers and Uniform Container Access
- C++17: New Parallel Algorithms of the Standard Template Library
- Get the Current Pdf Bundle: Concurrency with C++17 and C++20
- C++17 has a Visitor
- The Winners of the Next Pdf Bundles
- C++17 – Avoid Copying with std::string_view
- Which pdf bundle should I provide?
- C++17- std::byte and std::filesystem
- C++17- More Details about the Core Language
- C++17 – What’s New in the Library?
- How to get your pdf bundle?
- C++17 – What’s New in the Core Language?
- And the Winners are: The C++ Memory Model/Das C++ Speichermodell
- Defining Concepts
- Placeholders – The Second
- Concepts – Placeholders
- Task Blocks
- Transactional Memory
- I’m Done – Geschafft: Words about the Future of my Blogs
- Pdf Bundles
- Coroutines
- Latches And Barriers
- std::future Extensions
- And the Winners are
- Atomic Smart Pointers
- Parallel Algorithms of the Standard Template Library
- Multithreading with C++17 and C++20
- Expression Templates
- C++ is Lazy: CRTP
- Six Vouchers to Win
- Monads in C++
- Concepts
- The New Ranges Library
- Fold Expressions
- Recursion, List Manipulation, and Lazy Evaluation
- Pure Functions
- Immutable Data
- Higher-Order Functions
- First-Class Functions
- The Definition of Functional Programming
- Functional in C++17 and C++20
- Functional in C++11 and C++14: Dispatch Table and Generic Lambdas
- Functional in TR1 and C++11
- Functional in C++98
- Object-Oriented, Generic, and Functional Programming
- Memory Pool Allocators by Jonathan Müller
- Pros and Cons of the various Memory Allocation Strategies
- Strategies for the Allocation of Memory
- Improvements of this Blog
- Memory Management with std::allocator
- Overloading Operator new and delete 2
2016 97
- Overloading Operator new and delete 1
- Explicit Memory Management
- Garbage Collection – No Thanks
- Perfect Forwarding
- Time for Wishes
- Move Semantis: Two Nice Properties
- Copy versus Move Semantics: A few Numbers
- std::array – Dynamic Memory, no Thanks
- Automatic Memory Management of the STL Containers
- std::weak_ptr
- Specialities of std::shared_ptr
- std::shared_ptr
- std::unique_ptr
- Memory and Performance Overhead of Smart Pointers
- Careful Handling of Resources
- Generalized Plain Old Data
- Buckets, Capacity, and Load Factor
- Hash Functions
- Associative Containers – A simple Performance Comparison
- Hash Tables
- Type-Traits: Performance Matters
- constexpr Functions
- constexpr – Variables and Objects
- Constant Expressions with constexpr
- Inline
- The Null Pointer Constant nullptr
- override and final
- Strongly-Typed Enums
- Raw and Cooked
- User-Defined Literals
- Published at Leanpub: The C++ Standard Library
- I’m proud to present: The C++ Standard Library
- Compare and Modify Types
- Check Types
- More and More Save
- Statically Checked
- {}-Initialization
- auto-matically inititialized
- Facts
- Myths
- Requirements of Embedded Programming
- Sleep and Wait
- The Three Clocks
- Time Duration
- Time Point
- The Time Library
- My Conclusion: Summation of a Vector in three Variants
- Multithreaded: Summation with Minimal Synchronization
- Multithreaded: Summation of a Vector
- Single Threaded: Summation of a Vector
- Thread-Safe Initialization of a Singleton
- Ongoing Optimization: Relaxed Semantics with CppMem
- Ongoing Optimization: A Data Race with CppMem
- Ongoing Optimization: Acquire-Release Semantics with CppMem
- Ongoing Optimization: Sequential Consistency with CppMem
- Ongoing Optimization: Locks and Volatile with CppMem
- Looking for Proofreaders for my New C++ Book
- Ongoing Optimization: Unsynchronized Access with CppMem
- Ongoing Optimization
- CppMem – An Overview
- Relaxed Semantics
- Acquire-Release Fences
- Fences are Memory Barriers
- Acquire-Release Semantics – The Typical Misunderstanding
- 100 Posts Anniversary – Quo vadis Modernes C++?
- Transitivity of the Acquire-Release Semantic
- memory_order_consume
- Acquire-Release Semantic
- Sequential Consistency applied
- Synchronization and Ordering Constraints
- Atomics
- The Atomic Boolean
- Sequential Consistency
- The Facebook Group Modernes C++
- The Atomic Flag
- Thread Synchronization with Condition Variables or Tasks
- C++ Memory Model
- The Special Futures
- Promise and Future
- Modernes C++
- Asynchronous Callable Wrappers
- Asynchronous Function Calls
- Tasks
- Condition Variables
- Thread-Local Data
- Thread-Safe Initialization of Data
- Prefer Locks to Mutexes
- The Risks of Mutexes
- Reader-Writer Locks
- Source Code Repository
- Threads Sharing Data
- Thread Arguments
- Threads Lifetime
- For the Proofreaders and the Curious People
- Thread Creation
- Multithreading in Modern C++
- Why my Blog in English?