The Curious Engineer

All blogs / C++

MC++ BLOG

modernescpp.com

Der Blog für Modernes C++ von Rainer Grimm

C++Concurrency

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

  1. The Problem with C++ Safety (Part 1): Why “It Works” Isn’t Good Enough
  2. One Year Later: Continuing Rainer’s Legacy

2025 36

  1. My ALS Journey (31/31): The End
  2. Small Safety Improvements in the C++ 26 Core Language
  3. My ALS Journey (30/n): Cippi at the CppCon
  4. Contracts: Evaluation Semantic
  5. My ALS Journey (29/n): I feel Good
  6. Contracts: A Deep Dive
  7. My ALS Journey (28/n): Bureaucracy – The German Disease
  8. Data-Parallel Types: Algorithms
  9. My ALS Journey (27/n): An Emergency Call
  10. Data-Parallel Types: Reduction
  11. My ALS Journey (26/n): Cippi’s first Adventures
  12. Data-Parallel Types: simd_mask
  13. My ALS Journey (25/n): Small and Big Hurdles
  14. Data-Parallel Types – A First Example
  15. My ALS Journey (24/n): Cippi’s World Tour
  16. Data-Parallel Types (SIMD)
  17. Read-copy-update (RCU)
  18. atomic<shared_ptr<>> by Oliver Schädlich
  19. My ALS Journey (23/n): Cippi
  20. Hazard Pointers in C++26
  21. My ALS Journey (22/n): Call for Collaboration
  22. A Lock-Free Stack: A Hazard Pointer Implementation Explained II
  23. A Lock-Free Stack: A Hazard Pointer Implementation Explained I
  24. My ALS Journey (21/n): ALS Fundraiser by Jen and Jason
  25. A Lock-Free Stack: A Hazard Pointer Implementation
  26. A Lock-Free Stack: A Simple Garbage Collector
  27. A Lock-Free Stack: Atomic Smart Pointer
  28. A Lock-Free Stack: A Complete Implementation
  29. My ALS Journey (20/n): Aids
  30. My Next Mentoring Program: “Generic Programming (Templates) with C++” starts
  31. A Lock-Free Stack: A Simplified Implementation
  32. Deferred Reclamation in C++26: Read-Copy Update and Hazard Pointers
  33. std::format Extension
  34. C++26 Library: string and string_view Processing
  35. My ALS Journey (19/n): The Never Ending Story
  36. My Next Mentoring Program: ” Embedded Programming with Modern C++” starts

2024 65

  1. Last Chance- 1 Day Left
  2. std::execution: More Senders
  3. Christmas Special – 5 Days Left
  4. Christmas Special – 7 Days Left
  5. My ALS Journey (18/n): C++ and ALS
  6. std::execution: Sender
  7. std::execution: Composition of Senders
  8. std::execution: Inclusive Scan
  9. Christmas Special
  10. std::execution: Asynchronous Algorithms
  11. My ALS Journey (17/n): Christmas Special
  12. std::execution
  13. C++26 Core Language: Small Improvements
  14. My ALS Journey (16/n): Good Bye Training / Hello Mentoring
  15. Placeholders and Extended Character Set
  16. Contracts in C++26
  17. Reflection in C++26: Determine the Layout
  18. My ALS Journey (15/n): A typical Day
  19. Reflection in C++26: Metafunctions for Enums and Classes
  20. Reflection in C++26: Metafunctions
  21. Reflection in C++26
  22. An Overview of C++26: Concurrency
  23. My ALS Journey (14/n): My Status Quo
  24. An Overview Of C++26: The Library – Math
  25. An Overview of C++26: The Library
  26. An Overview of C++26: Core Language
  27. C++26: The Next C++ Standard
  28. My ALS Journey (13/n): Next Steps
  29. Table of Content
  30. C++23: This and That
  31. Feature Testing Macros
  32. My ALS Journey (12/n): My Legacy
  33. Cooperative Interruption of a Thread in C++20: Callbacks
  34. Cooperative Interruption of a Thread in C++20
  35. My ALS Journey: 11/n
  36. Chrono: Input
  37. Chrono I/O: Unformatted and Formatted
  38. My ALS Journey: 10/n
  39. Chrono I/O
  40. Time Zones: Online Classes
  41. Time Zones: Details
  42. My ALS Journey: 9/n with Hector
  43. C++20: Query Calendar Dates and Ordinal Dates
  44. C++20: Displaying and Checking Calendar Dates
  45. C++20: Creating Calendar Dates
  46. My ALS Journey: 8/n with Easter Present
  47. C++20: Time of Day
  48. C++20: Basic Chrono Terminology with Time Duration and Time Point
  49. My Next Mentoring Program: “Concurrency with Modern C++” starts
  50. C++20: Basic Chrono Terminology
  51. My ALS Journey: 7/n
  52. More Details to Formatting User-Defined Types in C++20
  53. My ALS Journey: 6/n
  54. Formatting User-Defined Types in C++20
  55. Presentation of my Mentoring Programs (Including “Concurrency with Modern C++”)
  56. My Next Mentoring Program: “Concurrency with Modern C++”
  57. The Formatting Library in C++20: The Format String (2)
  58. My ALS Journey: 5/n
  59. The Formatting Library in C++20: The Format String
  60. Printed Version of “Concurrency with Modern C++” on Amazon
  61. The Formatting Library in C++20
  62. My ALS Journey: 4/n
  63. std::span in C++20: More Details
  64. Our Money-Raising Campaign for ALS Research
  65. The autogenerated Equality Operator

2023 82

  1. My ALS Journey: 3/n
  2. The Second Edition of my C++20 Book on Amazon
  3. A Coroutines-Based Single Consumer – Single Producer Workflow by Ljubic Damir
  4. A Bug in the Priority Scheduler for Coroutines
  5. My ALS Journey: 2/n
  6. An Advanced Priority Scheduler for Coroutines
  7. A Priority Scheduler for Coroutines
  8. Coroutines: A Scheduler for Tasks by Dian-Lun Lin
  9. Thank You for Your Support: 1/n
  10. A Concise Introduction to Coroutines by Dian-Lun Lin
  11. The Ranges Library in C++20: More Design Choices
  12. The Ranges Library in C++20: Design Choices
  13. My very Serious Progressive Nerve Condition
  14. C++20: More Details about Module Support of the Big Three
  15. C++20: Module Support of the Big Three
  16. Optimization with Allocators in C++17
  17. Special Allocators with C++17
  18. Polymorphic Allocators in C++17
  19. C++23: Ranges Improvements and std::generator
  20. The Final Version of my C++20 Book
  21. C++23: A Multidimensional View
  22. C++23: Four new Associative Containers
  23. C++23: A New Way of Error Handling with std::expected
  24. C++23: A Modularized Standard Library, std::print and std::println
  25. 60 terrible tips for a C++ developer
  26. C++ Parallel STL Benchmark
  27. Two Days Left: Early Bird Price for my Mentoring Program “C++20: Get the Details”
  28. C++23: More Small Pearls
  29. 1 Week Left: Early Bird Price for my Mentoring Program “C++20: Get the Details”
  30. My New Blog
  31. Presentation of my Mentoring Programs (Including “C++20: Get the Details”)
  32. C++23: The Small Pearls in the Core Language
  33. 2 Weeks Left: Early Bird Price for my Mentoring Program “C++20: Get the Details”
  34. C++23: Syntactic Sugar with Deducing This
  35. 30 Days Left: Early Bird Price for my Mentoring Program “C++20: Get the Details”
  36. C++23: Deducing This
  37. Registration is Open for my New Mentoring Program, “C++20: Get the Details”
  38. C++23: The Next C++ Standard
  39. Presentation of my Mentoring Programs (Including “C++20: Get the Details”)
  40. Thread-Safe Queue – Two Serious Errors
  41. Monitor Object
  42. Active Object
  43. Dealing with Mutation: Guarded Suspension
  44. Dealing with Mutation: Thread-Safe Interface
  45. Dealing with Mutation: Locking
  46. Dealing with Sharing
  47. Concurrency Patterns
  48. My Next Mentoring Program: “C++20: Get the Details”
  49. Reactor
  50. Model-View-Controller
  51. Broker
  52. Lack of Training Culture: Why the Cultureless Don’t Stand a Chance
  53. Pipes-and-Filters
  54. Layers
  55. Table of Content
  56. The Time Library
  57. Multithreading with C++17 and C++20
  58. Multithreading in Modern C++
  59. Printed Version of “The C++ Standard Library” on Amazon
  60. Architectural Patterns
  61. Presentation next Monday: Concurrency Patterns with Rainer Grimm
  62. The Lack of Training Culture: You unlearned Learning
  63. How can you recognise a good software architecture?
  64. Idioms for Polymorphism and Templates
  65. The C++ Standard Library: The Fourth Edition includes C++23
  66. Covariant Return Type
  67. Webinar: How to get a job at a high-frequency trading digital-assets shop
  68. One Day left: Early Bird Price for my Mentoring Program “Design Patterns and Architectural Patterns with C++”
  69. One Day left: Early Bird Price for my Mentoring Program “Design Patterns and Architectural Patterns with C++”
  70. The Lack of Training Culture: You hire for Skills but not for Attitude
  71. 45% Student Discount for my Mentoring Program: “Design Patterns and Architectural Patterns with C++”
  72. The Iterator Protocol
  73. One Week left: Early Bird Price for my Mentoring Program “Design Patterns and Architectural Patterns with C++”
  74. The Null Object Pattern
  75. Value Objects
  76. 20 Days Left: Early Bird Price for my Mentoring Program “Design Patterns and Architectural Patterns with C++”
  77. Regular Types
  78. The Lack of Training Culture: An Employer must support their Employees
  79. The Rule of Zero, or Six
  80. Argument-Dependent Lookup and the Hidden Friend Idiom
  81. Partial Function Application
  82. The Lack of Training Culture: Four Signs

2022 75

  1. An Interview that went Viral
  2. What Mentees say About my Mentoring
  3. Early Bird Price for my Mentoring Program “Design Patterns and Architectural Patterns with C++”
  4. The Copy-and-Swap Idiom
  5. Webinar: C++ with Python for Algorithmic Trading
  6. Registration is Open for my Mentoring Program “Design Patterns and Architectural Patterns with C++”
  7. The Template Method
  8. The Visitor Pattern
  9. The Observer Pattern
  10. The Proxy Pattern
  11. The Strategy Pattern
  12. The Facade Pattern
  13. The Composite Pattern
  14. The Decorator Pattern
  15. And the Five Winners for “Template Metaprogramming with C++” are
  16. The Bridge Pattern
  17. The Adapter Pattern
  18. Five Coupons for the eBook “Template Metaprogramming with C++”
  19. The Singleton: The Alternatives Monostate Pattern and Dependency Injection
  20. Concepts and the Finance Industry
  21. The Singleton: Pros and Cons
  22. The Singleton
  23. The Factory Method (Slicing and Ownership Semantics)
  24. Stop Training, Start Mentoring
  25. The Factory Method
  26. Anti-Patterns
  27. About Algorithms, Frameworks, and Pattern Relations
  28. The Structure of Patterns
  29. And the Five Winners for the “C++20 STL Cookbook” are
  30. Classification of Patterns
  31. Five Giveaway eBooks for “C++20 STL Cookbook”
  32. Classification of Design Patterns
  33. And the Five Winners for “C++ Core Guidelines: Best Practices for Modern C++”
  34. Training or Mentoring: What’s the Difference?
  35. C++ Core Guidelines Explained: Best Practices for Modern C++
  36. The History of Patterns
  37. The Advantages of Patterns
  38. I’m Nominated for the “2022 Business Worldwide CEO Awards”
  39. Design Patterns and Architectural Patterns with C++: A First Overview
  40. Ranges Improvements with C++23
  41. My Next Mentoring Program is “Design Patterns and Architectural Patterns with C++”
  42. Improved Iterators with Ranges
  43. My Next Mentoring Program
  44. Sentinels and Concepts with Ranges Algorithms
  45. Projections with Ranges
  46. The Ranges Library in C++20: More Details
  47. Check Types with Concepts
  48. Check Types with Concepts – The Motivation
  49. Using Requires Expression in C++20 as a Standalone Feature
  50. Defining Concepts with Requires Expressions
  51. C++ 20 Techniques for Algorithmic Trading
  52. Define Concepts
  53. Type Erasure
  54. 10 Days Left to Register Yourself for my Mentoring Program “Fundamentals for C++ Professionals”
  55. A std::advance Implementation with C++98, C++17, and C++20
  56. A Sample for my Mentoring Program “Fundamentals for C++ Professionals”
  57. Software Design with Traits and Tag Dispatching
  58. Registration is Open for my Mentoring Program “Fundamentals for C++ Professionals”
  59. Policy and traits
  60. Avoiding Temporaries with Expression Templates
  61. Help for the People in Ukraine
  62. Mixins
  63. The Launch of my Mentoring Program “Fundamentals for C++ Professionals”
  64. More about Dynamic and Static Polymorphism
  65. More About Me
  66. Dynamic and Static Polymorphism
  67. constexpr if
  68. constexpr and consteval Functions in C++20
  69. More Information about my Mentoring Program “Fundamentals for C++ Professionals”
  70. constexpr Functions
  71. An Update of my Book “Concurrency with Modern C++”
  72. The New pdf Bundle is Ready: C++20 Concurreny – The Hidden Pearls
  73. Dining Philosophers Problem III
  74. Dining Philosophers Problem II
  75. Dining Philosophers Problem I

2021 65

  1. My Mentoring Program “Fundamentals for C++ Professionals”
  2. Which pdf bundle do you want? Make your choice!
  3. The Type-Traits Library: Optimization
  4. The Type-Traits Library: Correctness
  5. The Type-Traits Library: std::is_base_of
  6. The Type-Traits Library: Type Comparisons
  7. And the Winners for the Seven Vouchers for Fedor’s Book “The Art of Writing Efficient Programs” are
  8. The Type-Traits Library: Type Checks
  9. Template Metaprogramming – Hybrid Programming
  10. Seven Voucher for Fedor G. Pikus Book “The Art of Writing Efficient Programs”
  11. Template Metaprogramming – How it Works
  12. Template Metaprogramming – How it All Started
  13. Automatic Return Type (C++11/14/20)
  14. Automatic Return Type (C++98)
  15. Dependent Names
  16. The Special Friendship of Templates
  17. Visiting a std::variant with the Overload Pattern
  18. Smart Tricks with Parameter Packs and Fold Expressions
  19. The New pdf Bundle is Ready: C++20 Modules
  20. Modern C++ Collection
  21. From Variadic Templates to Fold Expressions
  22. C++20 Modules: Private Module Fragment and Header Units
  23. The First Big Update of My C++20 Book
  24. Which pdf bundle do you want? Make your choice!
  25. More about Variadic Templates …
  26. Variadic Templates or the Power of Three Dots
  27. Template Instantiation
  28. And the Winners for the Five Vouchers for Stephan’s Book “Clean C++20” are
  29. Performance of the Parallel STL Algorithms
  30. Parallel Algorithms of the STL with the GCC Compiler
  31. Five Vouchers for Stephan Roth’s Book “Clean C++20” to Win
  32. Full Specialization of Function Templates
  33. Template Specialization – More Details About Class Templates
  34. Template Specialization
  35. Template Argument Deduction of Class Templates
  36. The New pdf Bundle is Ready: C++20 Coroutines
  37. Template Arguments
  38. Alias Templates and Template Parameters
  39. “Concurrency with Modern C++” Update to C++20
  40. Surprise Included: Inheritance and Member Functions of Class Templates
  41. Class Templates
  42. Which pdf bundle do you want? Make your choice!
  43. Function Templates – More Details about Explicit Template Arguments and Concepts
  44. Function Templates
  45. Templates – First Steps
  46. Printed Version of C++20 & Source Code on GitHub
  47. And The Winner is: Templates
  48. Quo Vadis – Modernes C++
  49. Automatically Resuming a Job with Coroutines on a Separate Thread
  50. Starting Jobs with Coroutines
  51. A Generic Data Stream with Coroutines in C++20
  52. An Infinite Data Stream with Coroutines in C++20
  53. Executing a Future in a Separate Thread with Coroutines
  54. Lazy Futures with Coroutines
  55. Implementing Simple Futures with Coroutines
  56. Synchronized Output Streams with C++20
  57. The Five (Seven) Winners of my C++20 book are:
  58. An Improved Thread with C++20
  59. Resolving C/C++ Concurrency Bugs More Efficiently with Time Travel Debugging
  60. Cooperative Interruption of a Thread in C++20
  61. Barriers and Atomic Smart Pointers in C++20
  62. Latches in C++20
  63. Semaphores in C++20
  64. And the Winners are:
  65. Five Vouchers to win for my book “C++20”

2020 60

  1. Performance Comparison of Condition Variables and Atomics in C++20
  2. I’m Proud to Present my New Book: C++20
  3. Synchronization with Atomics in C++20
  4. Atomic References with C++20
  5. Looking for Proofreaders for my New Book: C++20
  6. Bit Manipulation with C++20
  7. Feature Testing with C++20
  8. Safe Comparisons of Integrals with C++20
  9. Calendar and Time-Zones in C++20: Calendar Dates
  10. Calendar and Time-Zones in C++20: Time of Day
  11. Calendar and Time-Zones in C++20: Time-Zones
  12. More and More Utilities in C++20
  13. Calendar and Time-Zones in C++20: Handling Calendar Dates
  14. C++20: Extend std::format for User-Defined Types
  15. std::format in C++20
  16. More Convenience Functions for Containers with C++20
  17. constexpr std::vector and std::string in C++20
  18. std::span in C++20: Bounds-Safe Views for Sequences of Objects
  19. And the Winners are:
  20. Five Vouchers to win for the book “Modern C++ for Absolute Beginners”
  21. volatile and Other Small Improvements in C++20
  22. New Attributes with C++20
  23. Compiler Explorer, PVS-Studio, and Terrible Simple Bugs
  24. More Lambda Features with C++20
  25. The C++ Standard Library: The Third Edition includes C++20
  26. More Powerful Lambdas with C++20
  27. Various Template Improvements with C++20
  28. Solving the Static Initialization Order Fiasco with C++20
  29. Two new Keywords in C++20: consteval and constinit
  30. Designated Initializers
  31. C++20: Optimized Comparison with the Spaceship Operator
  32. C++20: More Details to the Spaceship Operator
  33. C++20: The Three-Way Comparison Operator
  34. C++20: Further Open Questions to Modules
  35. C++20: Structure Modules
  36. C++20: Module Interface Unit and Module Implementation Unit
  37. C++20: A Simple math Module
  38. Modernes C++ goes Worldwide
  39. C++20: The Advantages of Modules
  40. Face-to-Face Seminars and Online Seminars are different
  41. C++20: Thread Pools with cppcoro
  42. C++20: Powerful Coroutines with cppcoro
  43. C++20: Coroutines with cppcoro
  44. Four Voucher for Educative
  45. C++20: Thread Synchronization with Coroutines
  46. C++20: An Infinite Data Stream with Coroutines
  47. C++20: More Details to Coroutines
  48. Looking for Proofreaders for my new Book: C++ Core Guidelines
  49. C++20: Coroutines – A First Overview
  50. My Personal Words about Corona
  51. C++20: Python’s map Function
  52. C++20: Pythons range Function, the Second
  53. C++20: Pythonic with the Ranges Library
  54. C++20: Functional Patterns with the Ranges Library
  55. C++20: The Ranges Library
  56. Concepts in C++20: An Evolution or a Revolution?
  57. C++20: Define the Concept Regular and SemiRegular
  58. C++20: Define the Concepts Equal and Ordering
  59. C++20: Define Concepts
  60. C++20: Concepts – Predefined Concepts

2019 57

  1. C++20: Concepts – What we don’t get
  2. C++20: Concepts – Syntactic Sugar
  3. A Brief Overview of the PVS-Studio Static Code Analyzer
  4. C++20: Concepts, the Placeholder Syntax
  5. C++20: Concepts, the Details
  6. C++20: Two Extremes and the Rescue with Concepts
  7. C++20: Concurrency
  8. C++20: The Library
  9. C++ 20: The Core Language
  10. C++20: The Big Four
  11. The new pdf bundle is ready: C++ Core Guidelines: Performance
  12. The Next Big Thing: C++20
  13. “Concurrency with Modern C++” has a new chapter
  14. C++ Core Guidelines: Naming and Layout Rules
  15. C++ Core Guidelines: Lifetime Safety And Checking the Rules
  16. C++ Core Guidelines: Bounds Safety
  17. C++ Core Guidelines: Type Safety by Design
  18. C++ Core Guidelines: Type Safety
  19. C++ Core Guidelines: Profiles
  20. More Myths of My Blog Readers
  21. Which pdf bundle should I provide? Make your choice!
  22. Myths of My Blog Readers
  23. C++ Core Guidelines: More Non-Rules and Myths
  24. C++ Core Guidelines: Non-Rules and Myths
  25. C++ Core Guidelines: Supporting Sections
  26. C++ Core Guidelines: When RAII breaks
  27. More Rules about the Regular Expression Library
  28. The Regular Expression Library
  29. C++ Core Guidelines: Improved Performance with Iostreams
  30. Stuff you should know about In- and Output with Streams
  31. C++ Core Guidelines: IOstreams
  32. C++ Core Guidelines: Rules for Strings
  33. C++ Core Guidelines: Avoid Bounds Errors
  34. More special Friends with std::map and std::unordered_map
  35. C++ Core Guidelines: std::array and std::vector are your Friends
  36. C++ Core Guidelines: The Standard Library
  37. More Details to Modules
  38. Modules
  39. C++ Core Guidelines: The Remaining Rules about Source Files
  40. The new pdf bundle is available: C++ Core Guidlines – Templates and Generic Programming
  41. C++ Core Guidelines: Source Files
  42. C++ Insights – Lambdas
  43. C++ Insights – Variadic Templates
  44. C++ Insights – Template Instantiation
  45. C++ Insights – Type Deduction
  46. Which pdf bundle should I provide? Make your choice!
  47. C++ Insights – Implicit Conversions
  48. C++ Core Guidelines: Mixing C with C++
  49. Types-, Non-Types, and Templates as Template Parameters
  50. Templates: Misconceptions and Surprises
  51. C++ Core Guidelines: Surprise included with the Specialisation of Function Templates
  52. C++ Core Guidelines: Other Template Rules
  53. C++ Core Guidelines: Programming at Compile Time with constexpr
  54. C++ Core Guidelines: Programming at Compile Time with Type-Traits (The Second)
  55. C++ Core Guidelines: Programming at Compile Time with the Type-Traits
  56. C++ Core Guidelines: Programming at Compile Time
  57. C++ Core Guidelines: Rules for Template Metaprogramming

2018 62

  1. CppDepend – A Review
  2. C++ Core Guidelines: Rules for Variadic Templates
  3. C++ Core Guidelines: Rules for Templates and Hierarchies
  4. C++ Core Guidelines: Ordering of User-Defined Types
  5. C++ Core Guidelines: Template Definitions
  6. C++ Core Guidelines: Surprises with Argument-Dependent Lookup
  7. C++ Core Guidelines: Regular and SemiRegular Types
  8. Meeting Embedded and Meeting C++ 2018
  9. C++ Core Guidelines: Template Interfaces
  10. C++ Core Guidelines: Pass Function Objects as Operations
  11. I’m Proud to Present: The C++ Standard Library including C++14 & C++17
  12. C++ Core Guidelines: Definition of Concepts, the Second
  13. A new Thread with C++20: std::jthread
  14. C++ Core Guidelines: Rules for the Definition of Concepts
  15. C++ Core Guidelines: Rules for the Usage of Concepts
  16. CppCon 2018
  17. C++ Core Guidelines: Better Specific or Generic?
  18. C++ Core Guidelines: Type Erasure with Templates
  19. C++ Core Guidelines: Type Erasure
  20. C++ Core Guidelines: Rules for Templates and Generic Programming
  21. C++ Core Guidelines: Rules for Constants and Immutability
  22. The new pdf bundle is ready: C++ Core Guidelines – Concurrency and Parallelism
  23. C++ Core Gudelines: goto considered Evil
  24. For Free: Four Vouchers to Win
  25. C++ Core Guidelines: finally in C++
  26. I’m Proud to Present: Modern C++ Concurrency is available as interactive course
  27. C++ Core Guidelines: Rules about Exception Handling
  28. C++ Core Guidelines: The noexcept Specifier and Operator
  29. C++ Core Guidelines: A Short Detour to Contracts in C++20
  30. C++ Core Guidelines: Rules for Error Handling
  31. Which pdf bundle should I provide? Make your choice!
  32. C++ Core Guidelines: The Remaining Rules about Lock-Free Programming
  33. C++ Core Guidelines: The Resolution of the Riddle
  34. C++ Core Guidelines: Concurrency and lock-free Programming
  35. The End of my Detour: Unified Futures
  36. The Update of my Book “Concurreny with Modern C++”
  37. A Short Detour: Executors
  38. C++ Core Guidelines: Be Aware of the Traps of Condition Variables
  39. C++ Core Guidelines: More Traps in the Concurrency
  40. C++ Core Guidelines: Taking Care of your Child Thread
  41. C++ Core Guidelines: Sharing Data between Threads
  42. C++ Core Guidelines: Use Tools to Validate your Concurrent Code
  43. C++ Core Guidelines: More Rules about Concurrency and Parallelism
  44. C++ Core Guidelines: Rules for Concurrency and Parallelism
  45. The new pdf bundle is ready: Functional Features in C++
  46. C++ Core Guidelines: The Remaining Rules about Performance
  47. C++ Core Guidelines: More Rules about Performance
  48. The Truth about “Raw Pointers Removed from C++”
  49. No New New: Raw Pointers Removed from C++
  50. C++ Core Guidelines: Rules about Performance
  51. Which pdf bundle should I provide? Make your choice!
  52. C++ Core Guidelines: Rules about Statements and Arithmetic
  53. C++ Core Guidelines: More about Control Structures
  54. C++ Core Guidelines: To Switch or not to Switch, that is the Question
  55. C++ Core Guidelines: Rules for Statements
  56. C++ Core Guidelines: Rules about Don’ts
  57. C++ Core Guidelines: Rules for Conversions and Casts
  58. C++ Core Guidelines: More Rules for Expressions
  59. C++ Core Guidelines: Rules for Expressions
  60. C++ Core Guidelines: More Rules for Declarations
  61. C++ Core Guidelines: Declarations and Initialisations
  62. Clean C++

2017 101

  1. C++ Core Guidelines: Rules for Expressions and Statements
  2. C++ Core Guidelines: Passing Smart Pointers
  3. C++ Core Guidelines: Rules for Smart Pointers
  4. The new pdf bundle is available: Embedded – Performance Matters
  5. C++ Core Guidelines: Rules for Allocating and Deallocating
  6. C++ Core Guidelines: Rules about Resource Management
  7. C++ Core Guidelines: Rules for Enumerations
  8. Which pdf bundle should I provide? Make your choice!
  9. C++ Core Guidelines: Rules for Unions
  10. C++ Core Guidelines: More Rules for Overloading
  11. C++ Core Guidelines: Rules for Overloading and Overload Operators
  12. The C++ Standard Library: The Second Edition includes C++17
  13. C++ Core Guidelines: Accessing Objects in a Hierarchy
  14. C++ Core Guidelines: The Remaining Rules about Class Hierarchies
  15. The new pdf bundle is available: Functional Programming with C++17 and C++20
  16. C++ Core Guidelines: More Rules about Class Hierarchies
  17. C++ Core Guidelines: Class Hierarchies
  18. C++ Core Guidelines: Function Objects and Lambdas
  19. Which pdf bundle should I provide? Make your choice!
  20. C++ Core Guidelines: Comparison, Swap, and Hash
  21. C++ Core Guidelines: Rules for Copy and Move
  22. My open C++ Seminars in the First Half of 2018
  23. C++ Core Guidelines: Constructors
  24. The new pdf bundle is ready: C++17
  25. C++ Core Guidelines: Destructor Rules
  26. I Proudly present my Book is Ready “Concurrency with Modern C++”
  27. C++ Core Guidelines: The Rule of Zero, Five, or Six
  28. C++ Core Guidelines: Class Rules
  29. Which pdf bundle should I provide?
  30. C++ Core Guidelines: Semantic of Function Parameters and Return Values
  31. C++ Core Guidelines: The Rules for in, out, in-out, consume, and forward Function Parameter
  32. “Concurrency with Modern C++” is 95% complete; Including all Source Files
  33. C++ Core Guidelines: Function Definitions
  34. C++ Core Guideline: The Guideline Support Library
  35. My Book “Concurrency with Modern C++” is 75% complete
  36. C++ Core Guidelines: Interfaces II
  37. C++ Core Guidelines: Interfaces I
  38. My Book “Concurrency with Modern C++” is 50% complete
  39. C++ Core Guidelines: The Philosophy
  40. Get the Current Pdf Bundle: “Multithreading: The High-Level Interface”
  41. My Book “Concurrency with Modern C++” is 30% complete
  42. Why do we need Guidelines for Modern C++?
  43. What is Modern C++?
  44. The Winner is: Multithreading: The high-level Interface
  45. ABA – A is not the same as A
  46. Which pdf bundle should I provide? Make your cross!
  47. Blocking and Non-Blocking Algorithms
  48. Looking for Proofreaders for my new Book: Concurrency with Modern C++
  49. Malicious Race Conditions and Data Races
  50. Race Conditions versus Data Races
  51. C++17: Improved Associative Containers and Uniform Container Access
  52. C++17: New Parallel Algorithms of the Standard Template Library
  53. Get the Current Pdf Bundle: Concurrency with C++17 and C++20
  54. C++17 has a Visitor
  55. The Winners of the Next Pdf Bundles
  56. C++17 – Avoid Copying with std::string_view
  57. Which pdf bundle should I provide?
  58. C++17- std::byte and std::filesystem
  59. C++17- More Details about the Core Language
  60. C++17 – What’s New in the Library?
  61. How to get your pdf bundle?
  62. C++17 – What’s New in the Core Language?
  63. And the Winners are: The C++ Memory Model/Das C++ Speichermodell
  64. Defining Concepts
  65. Placeholders – The Second
  66. Concepts – Placeholders
  67. Task Blocks
  68. Transactional Memory
  69. I’m Done – Geschafft: Words about the Future of my Blogs
  70. Pdf Bundles
  71. Coroutines
  72. Latches And Barriers
  73. std::future Extensions
  74. And the Winners are
  75. Atomic Smart Pointers
  76. Parallel Algorithms of the Standard Template Library
  77. Multithreading with C++17 and C++20
  78. Expression Templates
  79. C++ is Lazy: CRTP
  80. Six Vouchers to Win
  81. Monads in C++
  82. Concepts
  83. The New Ranges Library
  84. Fold Expressions
  85. Recursion, List Manipulation, and Lazy Evaluation
  86. Pure Functions
  87. Immutable Data
  88. Higher-Order Functions
  89. First-Class Functions
  90. The Definition of Functional Programming
  91. Functional in C++17 and C++20
  92. Functional in C++11 and C++14: Dispatch Table and Generic Lambdas
  93. Functional in TR1 and C++11
  94. Functional in C++98
  95. Object-Oriented, Generic, and Functional Programming
  96. Memory Pool Allocators by Jonathan Müller
  97. Pros and Cons of the various Memory Allocation Strategies
  98. Strategies for the Allocation of Memory
  99. Improvements of this Blog
  100. Memory Management with std::allocator
  101. Overloading Operator new and delete 2

2016 97

  1. Overloading Operator new and delete 1
  2. Explicit Memory Management
  3. Garbage Collection – No Thanks
  4. Perfect Forwarding
  5. Time for Wishes
  6. Move Semantis: Two Nice Properties
  7. Copy versus Move Semantics: A few Numbers
  8. std::array – Dynamic Memory, no Thanks
  9. Automatic Memory Management of the STL Containers
  10. std::weak_ptr
  11. Specialities of std::shared_ptr
  12. std::shared_ptr
  13. std::unique_ptr
  14. Memory and Performance Overhead of Smart Pointers
  15. Careful Handling of Resources
  16. Generalized Plain Old Data
  17. Buckets, Capacity, and Load Factor
  18. Hash Functions
  19. Associative Containers – A simple Performance Comparison
  20. Hash Tables
  21. Type-Traits: Performance Matters
  22. constexpr Functions
  23. constexpr – Variables and Objects
  24. Constant Expressions with constexpr
  25. Inline
  26. The Null Pointer Constant nullptr
  27. override and final
  28. Strongly-Typed Enums
  29. Raw and Cooked
  30. User-Defined Literals
  31. Published at Leanpub: The C++ Standard Library
  32. I’m proud to present: The C++ Standard Library
  33. Compare and Modify Types
  34. Check Types
  35. More and More Save
  36. Statically Checked
  37. {}-Initialization
  38. auto-matically inititialized
  39. Facts
  40. Myths
  41. Requirements of Embedded Programming
  42. Sleep and Wait
  43. The Three Clocks
  44. Time Duration
  45. Time Point
  46. The Time Library
  47. My Conclusion: Summation of a Vector in three Variants
  48. Multithreaded: Summation with Minimal Synchronization
  49. Multithreaded: Summation of a Vector
  50. Single Threaded: Summation of a Vector
  51. Thread-Safe Initialization of a Singleton
  52. Ongoing Optimization: Relaxed Semantics with CppMem
  53. Ongoing Optimization: A Data Race with CppMem
  54. Ongoing Optimization: Acquire-Release Semantics with CppMem
  55. Ongoing Optimization: Sequential Consistency with CppMem
  56. Ongoing Optimization: Locks and Volatile with CppMem
  57. Looking for Proofreaders for my New C++ Book
  58. Ongoing Optimization: Unsynchronized Access with CppMem
  59. Ongoing Optimization
  60. CppMem – An Overview
  61. Relaxed Semantics
  62. Acquire-Release Fences
  63. Fences are Memory Barriers
  64. Acquire-Release Semantics – The Typical Misunderstanding
  65. 100 Posts Anniversary – Quo vadis Modernes C++?
  66. Transitivity of the Acquire-Release Semantic
  67. memory_order_consume
  68. Acquire-Release Semantic
  69. Sequential Consistency applied
  70. Synchronization and Ordering Constraints
  71. Atomics
  72. The Atomic Boolean
  73. Sequential Consistency
  74. The Facebook Group Modernes C++
  75. The Atomic Flag
  76. Thread Synchronization with Condition Variables or Tasks
  77. C++ Memory Model
  78. The Special Futures
  79. Promise and Future
  80. Modernes C++
  81. Asynchronous Callable Wrappers
  82. Asynchronous Function Calls
  83. Tasks
  84. Condition Variables
  85. Thread-Local Data
  86. Thread-Safe Initialization of Data
  87. Prefer Locks to Mutexes
  88. The Risks of Mutexes
  89. Reader-Writer Locks
  90. Source Code Repository
  91. Threads Sharing Data
  92. Thread Arguments
  93. Threads Lifetime
  94. For the Proofreaders and the Curious People
  95. Thread Creation
  96. Multithreading in Modern C++
  97. Why my Blog in English?

2015 3

  1. Über mich
  2. Rainer Grimm
  3. Impressum