MC++ BLOG
  • TOUR
    • Introduction
    • My Blog
    • Current Topics
    • My Portfolio
  • Table of Content
  • Blog
  • Portfolio
    • My Books
    • My Courses
    • My Mentoring
  • Contact Me
  • RSS Feed
  • Cookie Policy (EU)
  • Search
  • Menu Menu

Blog

You are here: Home1 / Blog

Start Here

Tag Cloud

acquire-release semantics (10) ADL (1) Allocator (5) Anti-Patterns (1) Arithmetic (1) Associative Containers (10) async (2) Atomics (29) atomic_thread_fence (2) auto (6) barriers (2) Bit Manipulation (1) C (1) chrono (22) Classes (14) Class Hierarchies (4) Concepts (28) condition variables (6) consteval (2) constexpr (12) constexpr if (2) constinit (2) Contracts (2) Control Structures (2) Conversions (2) Coroutines (22) CppMem (9) CRTP (3) Data-Parallel Types (5) Data Races (1) Declarations (3) decltype (2) Dependency Injection (1) Dependent Names (1) Dining Philosophers (2) enum (3) Error Handling (6) Exceptions (3) execution (6) Executors (2) Expressions (2) Expression Templates (2) final (1) finally (1) Fold Expressions (3) format (9) friend (1) Functions (3) GSL (3) Haskell (9) Hazard Pointers (9) History (1) if (1) In/Output (4) Initialization (5) inline (1) Interfaces (3) iterator (2) jthread (3) Lambdas (9) latches (2) lock (11) lock-free (3) Memory (26) memory_order_consume (2) Mixins (1) Modules (12) Monads (1) Monostate (1) move (6) Multiple Inheritance (1) mutex (7) Myths (3) Naming (1) new/delete (8) nullptr (1) Ongoing Optimization (7) Outdated (11) Overloading (2) override (1) Ownership (1) Parallel STL (2) Performance (13) Pimpl (1) Placeholders (1) POD (1) Pointers (2) Policy (5) Polymorphism (2) Python (6) Race Conditions (2) RAII (1) Ranges (16) RCU (2) Reflection (4) Regular (2) Regular Expressions (3) Relaxed Semantics (7) Requires Expressions (1) Rule of Zero/Six (3) Safety (5) semaphores (3) Sequential Consistency (12) shared_ptr (7) Singleton (5) Slicing (1) Smart Pointers (14) Source Files (2) Spaceship (4) span (2) Statements (1) static (2) static_assert (2) string (5) switch (2) Tag Dispatching (3) Tasks (14) Template Metaprogramming (6) ThreadSanitizer (1) thread_local (3) Traits (1) Transactional Memory (1) type-traits (12) Type Erasure (3) union (1) unique_ptr (5) User-Defined Literals (2) Variadic Templates (5) variant (1) vector (1) Virtual Constructor (1) volatile (3) weak_ptr (1)

Source Code

Subscribe to the Newsletter

Latest news

  • Contracts: A Deep DiveAugust 25, 2025 - 9:35 am

    I already introduced contracts in the article “Contracts in C++26”. In this article and the next ones, I will dive deeper into the details. In this article, I refer mainly to the excellent proposal “Contracts for C++”. Unfortunately, proposal P2900R14 exceeds 100 pages in length. I will therefore try to summarize the most important points […]

  • Data-Parallel Types: AlgorithmsAugust 11, 2025 - 8:45 am

    The data-parallel types library has four special algorithms for SIMD vectors. The four special algorithms are min, max, minmax, and clamp. min, max, and minmax The two algorithms min and max have in common that they each accept two SIMD vectors and return a SIMD vector. This contains the element-wise minimum or maximum of the […]

  • Data-Parallel Types: ReductionJuly 28, 2025 - 10:10 am

    In this article, I will discuss reduction and mask reduction for data-parallel types. Reduction A reduction reduces the SIMD vector to a single element. The library provides three functions for this purpose: reduce, hmin, and hmax.The following program shows how these functions are used. // reduction.cpp #include <array> #include <experimental/simd> #include <functional> #include <iostream> #include […]

  • Data-Parallel Types: simd_maskJuly 14, 2025 - 9:16 am

    Thanks to simd_mask, conditional execution of operations on data-parallel types is possible. Unfortunately, in my last article, Data-Parallel Types – A First Example, I forgot to introduce one of the new library functions. I will make up for that in this article. Where Expression The new keyword where creates a so-called where expression. This allows […]

  • Data-Parallel Types – A First ExampleJune 25, 2025 - 4:01 pm

    After providing a theoretical introduction to the new C++ 26 feature in my last article, “Data-Parallel Types (SIMD),” I would like to follow up today with a practical example. The following introductory example is from the experimental implementation of the SIMD library. This functionality has been fully adopted in the C++ 26 draft under the […]

  • Data-Parallel Types (SIMD)June 16, 2025 - 10:24 am

    The data-parallel types (SIMD) library provides data-parallel types and operations on them. Today, I want to take a closer look at this. Before diving into the new library, I would like to take a moment to discuss SIMD. SIMD Vectorization refers to the SIMD (Single Instruction, Multiple Data) extensions of a modern processor’s instruction set. […]

Become a Patreon

Privacy Statement
Imprint
Disclaimer
Contact Me
© Copyright 2024 - Modernes C++ GmbH
  • Twitter
  • Facebook
  • LinkedIn
  • Vimeo
  • Xing
Scroll to top
Manage Cookie Consent
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
View preferences
{title} {title} {title}