{"id":347,"date":"2023-03-22T14:06:28","date_gmt":"2023-03-22T14:06:28","guid":{"rendered":"https:\/\/www.modernescpp.com\/?p=347"},"modified":"2025-12-25T15:48:33","modified_gmt":"2025-12-25T15:48:33","slug":"table-of-content","status":"publish","type":"post","link":"https:\/\/www.modernescpp.com\/index.php\/table-of-content\/","title":{"rendered":"Table of Content"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Welcome to the starting point of the Modernes C++ blog. This page provides a clear and structured overview of both existing and upcoming posts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The overview serves two purposes. First, it allows readers to quickly see which posts have already been published and easily find the content they\u2019re looking for. Second, it gives a glimpse of posts planned for the future. This evolving outline helps make the blog\u2019s direction transparent and gives readers a sense of what\u2019s coming next.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Modernes C++ was created by Rainer Grimm, a renowned C++ expert, author, and instructor. Sadly, Rainer passed away on October 6, 2025. The blog is now maintained by a collective of C++ experts who were close friends of Rainer Grimm and is administratively supported by the Grimm family. Through their efforts, Rainer\u2019s legacy continues, offering a valuable resource for developers and enthusiasts of modern C++.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"h1-multithreading-in-modern-c\"><span class=\"ez-toc-section\" id=\"Multithreading_in_modern_C\"><\/span>Multithreading in modern C++<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/multithreading-in-modern-c\">Overview<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h1-1-c-memory-model\"><span class=\"ez-toc-section\" id=\"C_memory_model\"><\/span>C++ memory model<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-memory-model\">Overview<\/a><\/li>\n\n\n\n<li>Atomic data types\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-atomic-flag\">std::atomic_flag<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-atomic-boolean\">std::atomic<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/atomics\">std::atomic<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/synchronization-and-ordering-constraints\">Synchronization and ordering constraints<\/a><\/li>\n\n\n\n<li>The different C++ memory models\n<ol class=\"wp-block-list\">\n<li>Sequential consistency\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/sequential-consistency\">Theory<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/sequential-consistency-applied\">Practice<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Acquire-release semantic\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/acquire-release-semantic\">Synchronization and ordering constraints<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/transivity-of-the-acquire-release-semantic\">Transitivity<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/memory-order-consume\">The special case std::memory_order_consume<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/acquire-release-semantic-the-typical-misunderstanding\">The typical error<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/relaxed-semantic\/\">Relaxed Semantics<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/sleep-and-wait\">Wait and Sleep<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Fences\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/fences-as-memory-barriers\">Memory barriers<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/acquire-release-fences\">Acquire- and release memory barriers<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Algorithms\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/blocking-and-non-blocking\">Blocking and non-blocking algorithms<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/aba-a-is-not-the-same-as-a\">ABA \u2013 A is not the same as A<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h1-2-the-threading-interface\"><span class=\"ez-toc-section\" id=\"The_threading_interface\"><\/span>The threading interface<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Threads\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/thread-creation\">Creation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/threads-lifetime\">Lifetime<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/data-for-threads\">Arguments<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/threads-sharing-data\">Sharing data<\/a>\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-risk-of-mutexes\">Risks<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/prefer-locks-to-mutexes\">Prefer Locks to Mutexes<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/reader-writer-locks\">Reader-Writer locks<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/thread-safe-initialization-of-data\">Safe initialization<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/thread-local-data\">Thread-local data<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/condition-variables\">Condition variables<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/tasks\">Tasks<\/a>\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/asynchronous-function-calls\">std::async<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/asynchronous-callable-wrappers\">std::packaged_task<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/promise-and-future\">std::promise and std::future<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-special-futures\">The special futures std::async<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/thread-synchronization-with-condition-variables-or-tasks\">Condition variables versus tasks for the synchronization of threads<\/a><\/li>\n\n\n\n<li>Challenges\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/race-condition-versus-data-race\">Data races versus race conditions<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/malicious-race-conditions\">Malicious data races<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/blocking-and-non-blocking\">Blocking and non-blocking algorithms<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"h2-multithreading-with-c-17-and-c-20\"><span class=\"ez-toc-section\" id=\"Multithreading_with_C17_and_C20\"><\/span>Multithreading with C++17 and C++20<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/multithreading-in-c-17-and-c-20\">An overview<\/a>\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/parallel-algorithm-of-the-standard-template-library\">Parallel algorithm of the Standard Template Library<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/atomic-smart-pointers\">Atomic smart pointers<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/std-future-extensions\">std::future extensions<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/latches-and-barriers\">Latches and barriers<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/coroutines\">Coroutines<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/transactional-memory\">Transactional memory<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/task-blocks\">Task blocks<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/a-short-detour-executors\">Executors<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-end-of-the-detour-unified-futures\">Unified Futures<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/CAFwjH\">std:::jthread<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"h3-application-of-multithreading\"><span class=\"ez-toc-section\" id=\"Application_of_multithreading\"><\/span>Application of multithreading<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ol class=\"wp-block-list\">\n<li>The time library\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-time-library\">Overview<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/time-point\">Time point<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/time-duration\">Time duration<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-three-clocks\">Clock<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/sleep-and-wait\">Wait and Sleep<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Ongoing optimization with CppMem\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/ongoing-optimization\">Context of ongoing optimization<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/cppmem-an-overview\">Introduction to CppMem<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/ongoing-optimization-2\">Non-atomic variables<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/ongoing-optimization-locks\">Locks<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/ongoing-optiimization-sequential-consistency-with-cppmem\">Sequential consistency<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/ongoing-optimization-acquire-release-semantic-with-cppmem\">Acquire-release semantic<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/ongoing-optimization-a-data-race-with-cppmem\">Acquire-release semantic with a data race<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/ongoing-optimization-relaxed-semantic-with-cppmem\">Relaxed semantic<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/ongoing-optimization-locks\">volatile<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Singleton\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/thread-safe-initialization-of-a-singleton\">Thread safe initialization of a singleton<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Calculating the sum of a std::vector\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/single-threaded-sum-of-the-elements-of-a-vector\">Single threaded<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/multithreaded-summation-of-a-vector\">Multithreaded with shared variables<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/multithreaded-summation-with-minimal-synchronization\">Multithreaded with minimal synchronization<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/my-conclusion-summation-of-a-vector-in-three-variants\">My conclusion<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>The Dining Philosophers Problem\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/bit.ly\/DiningPhilosophers1\">Dining Philosophers Problem I<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/dining-philiosophers-problem-ii\">Dining Philosophers Problem II<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/dining-philiosophers-problem-iii\">Dining Philosophers Problem III<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"h4-embedded-programming-with-c\"><span class=\"ez-toc-section\" id=\"Embedded_programming_with_C\"><\/span>Embedded programming with C++<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/requirements-of-embedded-programming\">Requirements for embedded programming<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/myths\">Myths <\/a>and<a href=\"https:\/\/www.modernescpp.com\/index.php\/facts\"> facts<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h4-1-high-safety-requirements\"><span class=\"ez-toc-section\" id=\"High_safety_requirements\"><\/span>High safety requirements<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>C++11\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/automatically-inititialized\">Automatic type deduction with&nbsp;<\/a><a href=\"https:\/\/www.modernescpp.com\/index.php\/automatically-inititialized\">auto<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/initialization\">Prevent narrowing with&nbsp; {} initialization<\/a><\/li>\n\n\n\n<li>Guarantees at compile time with static_assert and the type-traits library\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/statically-checked\">static_assert<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/more-and-more-save\">Continuously improvement- An introductory example to the type-traits library<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/check-types\">Check types<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/compare-and-modify-types\">Compare and modify types<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>User-defined literals\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/user-defined-literals\">Type safe calculation with user-defined literals<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/raw-and-cooked\">Raw and cooked<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/strongly-typed-enums\">Strongly-Typed Enumerations<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/override-and-final\">override and <\/a><a href=\"https:\/\/www.modernescpp.com\/index.php\/override-and-final\">final<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-null-pointer-constant-nullptr\">The null pointer constant <\/a><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-null-pointer-constant-nullptr\">nullptr<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h4-2-performance-matters\"><span class=\"ez-toc-section\" id=\"Performance_matters\"><\/span>Performance matters<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>C++98\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/inline\">inline<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>C++11\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/constant-expressions-with-constexpr\">Constant expressions<\/a>\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/constexpr-variables-and-objects\">Variables and objects<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/constexpr-functions\">Functions<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/type-traits-performance-matters\">Optimization with the type-traits library<\/a><\/li>\n\n\n\n<li>Hashtables\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/hash-tables\">Overview<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/associative-containers-a-simple-performance-comparison\">A simple performance comparison<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/hash-functions\">Hash functions<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/buckets-capacity-and-load-factor\">Buckets, capacity and, load factor<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/generalized-plain-old-data\">Generalized PODs<\/a><\/li>\n\n\n\n<li>noexcept<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>C++14\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/constexpr-functions\">constexpr functions<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h4-3-careful-handling-of-resources\"><span class=\"ez-toc-section\" id=\"Careful_handling_of_resources\"><\/span>Careful handling of resources<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/careful-handling-of-resources\">Overview<\/a><\/li>\n\n\n\n<li>Automatic memory management\n<ol class=\"wp-block-list\">\n<li>Smart pointers\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/memory-and-performance-overhead-of-smart-pointer\">Memory and performance overhead<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/std-unique-ptr\">std::unique_ptr<\/a><\/li>\n\n\n\n<li>std::shared_ptr\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/std-shared-ptr\">std::shared_ptr<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/specialities-of-std-shared-ptr\">Specialities<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/std-weak-ptr\">std::weak_ptr<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>The STL containers\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/automatic-memory-management-with-containers\">std::vector and <\/a><a href=\"https:\/\/www.modernescpp.com\/index.php\/automatic-memory-management-with-containers\">std::string<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/std-array-dynamic-memory-no-thanks\">std::array<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>C++ idioms\n<ol class=\"wp-block-list\">\n<li>Move semantic\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/copy-versus-move-semantic-a-few-numbers\">Copy versus Move semantics<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/move-semantic-tow-nice-properties\">Two Nice Properties<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/perfect-forwarding\">Perfect forwarding<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/garbage-collectio-no-thanks\">Garbage Collection \u2013 No Thanks<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/explicit-memory-management\">Explicit memory management<\/a>\n<ol class=\"wp-block-list\">\n<li>Overloading operator new and delete\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/overloading-operator-new-and-delete\">Part 1<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/overloading-operator-new-and-delete-2\">Part 2<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/memory-management-with-std-allocator\">std::allocator<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/strategies-for-the-allocation-of-memory\">Strategies for the allocation of memory<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/pros-and-cons-of-the-various-memory-management-strategies\">Pros and cons of the various memory allocation strategies<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/memory-pool-allocators-with-jonathan-mueller\">Memory Pool Allocators by Jonathan M\u00fcller<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"h5-functional-programming-with-c\"><span class=\"ez-toc-section\" id=\"Functional_programming_with_C\"><\/span>Functional programming with C++<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/objectoriented-generic-and-functional-programming\">Overview<\/a><\/li>\n\n\n\n<li>Functional Feature in C++\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/functional-in-c-98\">C++98<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/functional-in-tr1-and-c-11\">TR1 and C++11<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/functional-in-c-dispatch-table\">Dispatch table and generic Lambdas<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/functional-in-c-17-and-c-20\">C++17 and C++20<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-definition-of-functional-programming\">The definition<\/a><\/li>\n\n\n\n<li>Characteristics of functional programming\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/first-class-functions\">First-class functions<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/higher-order-functions\">Higher-order functions<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/immutable-data\">Immutable data<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/pure-functions\">Pure functions<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/recursion-list-manipulation-and-lazy-evaluation\">Recursion<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/recursion-list-manipulation-and-lazy-evaluation\">Manipulation of lists<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/recursion-list-manipulation-and-lazy-evaluation\">Lazy evaluation<\/a>\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-is-still-lazy\">CRTP<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/expression-templates\">Expression templates<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Functional programming with C++17 and C++20\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/fold-expressions\">Fold expressions<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-new-ranges-library\">The new ranges library<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/concepts-lite\">Concepts<\/a>\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/concepts-placeholders\">Placeholders<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/monads-in-c\">Monads in C++<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"h6-design-patterns-and-architectural-patterns\"><span class=\"ez-toc-section\" id=\"Design_Patterns_and_Architectural_Patterns\"><\/span>Design Patterns and Architectural Patterns<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/design-patterns-and-architectural-patterns-a-first-overview\">A First Overview<\/a><\/li>\n\n\n\n<li>Introduction\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/an-introduction-into-design-patterns\">The Advantages of Patterns<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/history-and-classification-of-patterns\">The History of Patterns<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/classification-of-patterns\">Classification of Design Patterns<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/classification-of-patterns-2\">Classification of Patterns<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Terminology\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-structure-of-patterns\">The Structure of Patterns<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/about-pattern-relations-algorithms-frameworks\">About Algorithms, Frameworks, and Pattern Relations<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/anti-patterns\">Anti-Patterns<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Design Patterns\n<ol class=\"wp-block-list\">\n<li>Creational Patterns\n<ol class=\"wp-block-list\">\n<li>Factory Method\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/factory-method\">Factory Method<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/factory-method-2\">Slicing and Ownership Semantics<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>The Singleton\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/creational-patterns-singleton\">The Singleton<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/singleton-pros-and-cons\">Pros and Cons<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-singleton-the-alternatives\">The Alternatives: The Monostate Pattern and Dependency Injection<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Structural Patterns\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-adapter-pattern\">The Adapter Pattern<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-bridge-pattern\">The Bridge Pattern<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-decorator-pattern\">The Decorator Pattern<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-composite-pattern\">The Composite Pattern<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-facade-pattern\">The Facade Pattern<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-proxy-pattern\">The Proxy Pattern<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Behavioral Pattern\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-visitor-pattern\">The Visitor Pattern<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-template-method\">The Template Method<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-strategy-pattern\">The Strategy Pattern<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Idioms\n<ol class=\"wp-block-list\">\n<li>General\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-copy-and-swap-idiom\">The Copy-and-Swap Idiom<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/partial-function-application\">Partial Function Application<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/argument-dependent-lookup-and-hidden-friends\">Argument-Dependent Lookup and the Hidden Friend Idiom<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Classes\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/rule-of-zero-or-six\">The Rule of Zero, or Six Mhm<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/regular-type\">Regular Types<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/value-objects\">Value Objects<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-null-object-pattern\">The Null Object Pattern<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-iterator-protocol\">The Iterator Protocol<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/covariant-return-type\">Covariant Return Type<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Polymorphism\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/idioms-for-polymorphism-and-templates\">Idioms for Polymorphism and Templates<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Templates\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/idioms-for-polymorphism-and-templates\">Idioms for Polymorphism and Templates<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Architectural Patterns\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/how-can-you-recognise-a-good-software-architecture\">How can you recognize a good software architecture? <\/a>by Alexander Eisenhut<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/architectural-patterns\">Architectural Patterns<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/layers\">Layers<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/pipes-and-filters\">Pipes-and-Filters<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/broker\">Broker<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/model-view-controller\">Model-View-Controller<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/reactor\">Reactor<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Concurrency\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/concurrency-patterns\">Concurrency Patterns<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/dealing-with-sharing\">Dealing with Sharing<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/dealing-with-mutation-locking\">Dealing with Mutation: Locking<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/dealing-with-mutation-thread-safe-interface\">Dealing with Mutation: The Thread-Safe Interface<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/dealing-with-mutation-guarded-suspension\">Dealing with Mutation: Guarded Suspension<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/active-object\">Active Object<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/monitor-object\">Monitor Object<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/thread-safe-queue-two-serious-errors\">Thread-Safe Queue- Two Serious Errors<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"h7-c-17\"><span class=\"ez-toc-section\" id=\"C17\"><\/span>C++17<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/cpp17-core\">Core language<\/a>\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-17-more-details-to-the-core-language\">More details<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-17-what-s-new-in-the-library\">Library<\/a>\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-17-more-details-about-the-library\">std::byte<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-17-more-details-about-the-library\">std::filesystem<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-17-avoid-copying-with-std-string-view\">std::string_view<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-17-new-algorithm-of-the-standard-template-library\">The New Algorithm of the STL<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-17-the-improved-interface-of-the-associative-containers\">Improved associative containers and uniform container access<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/parallel-algorithms-of-the-stl-with-gcc\">Parallel Algorithms of the STL with the GCC compiler<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/performance-of-the-parallel-stl-algorithmn\">Performance of the Parallel STL Algorithms<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-parallel-stl-benchmark\/\">C++ Parallel STL Benchmark<\/a> by <a href=\"https:\/\/duvanenko.tech.blog\/author\/duvanenko\/\">Victor J. Duvanenko<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/polymorphic-allocators-in-c17\/\">Polymorphic Allocators in C++17<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/special-allocators-with-c17\/\">Special Allocators with C++17<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/optimization-with-allocators-in-c17\/\">Optimization with Allocators in C++17<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"h8-c-20\"><span class=\"ez-toc-section\" id=\"C20\"><\/span>C++20<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"http:\/\/bit.ly\/2MXaezM\">The Next Big Thing: C++20<\/a><\/li>\n\n\n\n<li>Overview\n<ol class=\"wp-block-list\">\n<li><a href=\"http:\/\/bit.ly\/3471cqH\">The Big Four<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2PKLKge\">The Core Language<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2Ctduy3\">The Library<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2r1SCvc\">Concurrency<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Details\n<ol class=\"wp-block-list\">\n<li>Concepts\n<ol class=\"wp-block-list\">\n<li><a href=\"http:\/\/bit.ly\/2s7giyL\">Two Extremes and the Rescue with Concepts<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-20-concepts-the-details\">The Details<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2RArE9c\">The Placeholder Syntax<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/34nKOSv\">Syntactic Sugar<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2EJPSGD\">What we don\u2019t get<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2TijbbD\">Predefined Concepts<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2NL0yJN\">Define Concepts<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/define-concepts\">Define Concepts (Logical Combination of other Concepts or Compile-Time Predicates)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/defining-concepts-with-requires-expressions\">Defining Concepts with Requires Expressions<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/using-requires-expression-in-c-20-as-a-standalone-feature\">Using Requires Expressions in C++20 as a Standalone Feature<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2RxIDc1\">Define the Concepts Equal and Ordering<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/37TH2Ty\">Define the Concepts Regular and SemiRegular<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/test-types-with-concepts\">Check Types with Concepts \u2013 The Motivation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/check-types-with-concepts\">Check Types with Concepts<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2vgAQqe\">Concepts in C++20: An Evolution or a Revolution?&nbsp;<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Ranges Library\n<ol class=\"wp-block-list\">\n<li><a href=\"http:\/\/bit.ly\/2V8Fbqz\">The Ranges Library<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/32iY77s\">Functional Pattern with the Ranges Library<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-ranges-library-in-c-20-a-deep-dive\">The Ranges Library in C++20: More Details<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/projections-with-ranges\">Projections with Ranges<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/sentinels-and-concepts\">Sentinels and Concepts with Ranges Algorithms<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/improved-iterators-with-ranges\">Improved Iterators with Ranges<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-ranges-library-in-c20-design-choices\/\">The Ranges Library in C++20: Design Choices<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-ranges-library-in-c20-design-choices\/\">The Ranges Library in C++20: More Design Choices<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2TyfqNX\">Pythonic with the Ranges Library<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2wI2z3G\">Pythons range Function, the Second<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2QhUQAw\">Pythons map Function<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Coroutines\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/bit.ly\/3dl4VGE\">A First Overview<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-20-coroutines-more-details\">More Details<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-20-an-infinite-data-stream-with-coroutines\">An Infinite Data Stream with Coroutines<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/ThreadSynchronizationCoroutines\">Thread Synchronization with Coroutines<\/a><\/li>\n\n\n\n<li>cppcoro\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/bit.ly\/CoroutinesCppcoro\">Coroutines with cppcoro<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/CoroutineAbstractions\">Powerful coroutines with cppcoro<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/ThreadPoolsCppcoro\">Thread Pools with cppcoro<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><code>co_return<\/code><a href=\"https:\/\/bit.ly\/3kw84Ya\">:<\/a>\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/bit.ly\/3kw84Ya\">Implementing Simple Futures with Coroutines<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/lazy-futures-with-coroutines-in-c-20\">Lazy Futures with Coroutines<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/executing-a-future-in-a-separate-thread-with-coroutines\">Executing a Future in a Separate Thread<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><code>co_yield:<\/code>\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/an-infinite-data-stream-with-coroutines-in-c-20\">An Infinite Data Stream with Coroutines<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/a-generic-data-stream-with-coroutines-in-c-20\">A Generic Data Stream with Coroutines<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>co_await\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/starting-jobs-with-coroutines\">Starting Jobs with Coroutines<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/automatically-resuming-a-job-with-coroutines\">Automatically Resuming a Job with Coroutines on a Separate Thread<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-20-coroutines-more-details\">More Details<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/a-concise-introduction-to-coroutines-by-dian-lun-li\/\">A Concise Introduction to Coroutines by Dian-Lun Lin<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/coroutines-a-scheduler-for-tasks-by-dian-lun-li\/\">Coroutines: A Scheduler for Tasks by Dian-Lun Lin<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/a-priority-scheduler-for-coroutines\/\">A Priority Scheduler for Coroutines<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/an-advanced-priority-scheduler-for-coroutines\/\">An Advanced Priority Scheduler for Coroutines<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/a-bug-in-the-priority-scheduler-for-coroutines\/\">A Bug in the Priority Scheduler for Coroutines<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/a-coroutines-based-single-consumer-single-producer-workflow-by-ljubic-damir\/\">A Coroutine-Based Single Consumer \u2013 Single Producer Workflow by Ljubic Damir<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Modules\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/bit.ly\/cpp20-module\">The Advantages of Modules<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/SimpleMathModul\">A Simple math Module<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/ModuleInterfaceUnitModuleImplementationUnit\">Module Interface Unit and Module Implementation Unit<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/DivideModules\">Structure Modules<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/ModulesOpenQuestions\">Open Questions to Modules<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-20-modules-private-module-fragment-and-header-units\">Private Module Fragment and Header Units<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c20-module-support-of-the-big-three-compilers\/\">C++20: Module Support of the Big Three<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c20-more-details-about-module-support-of-the-big-three\/\">C++20: More Details about Module Support of the Big Three<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>The Core Language\n<ol class=\"wp-block-list\">\n<li>The Three-Way Comparison Operator\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/bit.ly\/ThreeWayComparison\">The Three-Way Comparison Operator<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/MoreDetailsToSpaceship\">More Details to the Spaceship Operator<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/OptimizedComparisonSpaceship\">Optimized Comparision with the Spaceship Operator<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-autogenerated-equality-operator\/\">The autogenerated Equality Operator<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/DesignatedInitializers\">Designated Initializers<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/ConstevalAndConstinit\">consteval and constinit<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/StaticInitializationOrderFiasco\">Solving the Static Initialization Order Fiasco<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/TemplateImprovementsCpp20\">VariousTemplate Improvements with C++20<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/TemplateLambdas\">More Powerful Lambdas with C++20<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/MoreLambdaCpp20\">More Lambda Features with C++20<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/AttributesCpp20\">New Attributes with C++20<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/VolatileCpp20\">volatile and other Small Improvements<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>The Library\n<ol class=\"wp-block-list\">\n<li><a href=\"http:\/\/bit.ly\/StdSpan\">std::span in C++20: Bounds-Safe Views for Sequences of Objects<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/stdspan-in-c20-more-details\/\">std::span in C++20: More Details<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/constexpr-vector-and-string-in-c-20\/\">constexpr std::vector and std::string in C++20<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/more-convenience-functions-for-containers-with-c-20\/\" data-type=\"link\" data-id=\"https:\/\/www.modernescpp.com\/index.php\/more-convenience-functions-for-containers-with-c-20\/\">More Convenience Functions for Containers with C++20<\/a><\/li>\n\n\n\n<li>std::format\n<ol class=\"wp-block-list\">\n<li><a href=\"http:\/\/bit.ly\/stdFormat\">The Basics<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/FormatUserDefined\">Extend std::format for User-Defined Types<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-formatting-library-in-c20\/\">The Formatting Library in C++20<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-formatting-library-in-c20-the-format-string\/\">The Formatting Library in C++20: The Format String<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-formatting-library-in-c20-the-format-string-2\/\">The Formatting Library in C++20: The Format String (2)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/formatting-user-defined-types-in-c20\/\">Formatting User-Defined Types in C++20<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/more-details-to-formatting-user-defined-types-in-c20\/\">More Details to Formatting User-Defined Types in C++20<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/MoreAndMoreUtilities\">More and More Utilities<\/a><\/li>\n\n\n\n<li>Calendar and Time-Zone\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/bit.ly\/31D62NN\">Time of Day<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/380rmR9\">Calendar Date<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/3ld6WZ6\">Handling Calendar Dates<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/3lDN1Ta\">Time-Zones<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c20-basic-chrono-terminology\/\">Basic Chrono Terminology<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c20-basic-chrono-terminology-with-time-duration-and-time-point\/\">Basic Chrono Terminology with Time Duration and Time Point<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c20-time-of-day\/\">Time of Day: Details<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c20-creating-calendar-dates\/\">Creating Calendar Dates<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c20-displaying-and-checking-calendar-dates\/\">Displaying and Checking Calendar Dates<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c20-query-calendar-dates-and-ordinal-dates\/\">Query Calendar Dates and Ordinal Dates<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/time-zones-details\/\">Time Zones: Details<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/time-zones-online-classes\/\">Time Zones: Online Classes<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/chrono-i-o\/\">Chrono: I\/O<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/chrono-i-o-unformatted-and-formatted\/\">Crono: I\/O: Unformatted<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/chrono-input\/\">Chrono: Input<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/3lXrkxN\">Safe Comparison of Integrals<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/3llNpoH\">Feature Testing<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/3mPhkXS\">Bit Manipulation<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Concurrency\n<ol class=\"wp-block-list\">\n<li>Atomics\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/bit.ly\/3oPICOs\">References<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/3nF8r3f\">Synchronization with Atomics<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/3oygijV\">Performance Comparison of Condition Variables and Atomics<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/barriers-in-c-20\">Barriers and Atomic Smart Pointers<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/atomicshared_ptr-by-oliver-schadlich\/\">atomic&lt;shared_ptr&lt;&gt;&gt; by Oliver Sch\u00e4dlich<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/3bPXFEC\">Semaphores<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/39eH23G\">Latches<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/barriers-in-c-20\/\">Barriers<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/3cQaizL\">Cooperative Interruption of a Thread<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/Cooperative Interruption of a Thread\">Cooperative Interruption of a Thread: Callbacks<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/3pjT2Wo\">std::jthread<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/3k8tvyq\">Synchronized Output Streams<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"h9-c-23\"><span class=\"ez-toc-section\" id=\"C23\"><\/span>C++23<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c23-the-next-c-standard\/\">C++23: The Next C++ Standard<\/a><\/li>\n\n\n\n<li>Core Language\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c23-deducing-this\/\">C++23: Deducing This<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c23-syntactic-sugar-with-deducing-this\/\">C++23: Syntactic Sugar with Deducing This<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c23-the-small-pearls-in-the-core-language\/\">C++23: The Small Pearls in the Core Language<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c23-more-small-pearls\/\">C++23: More Small Pearls<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Library\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c23-a-modularized-standard-library-stdprint-and-stdprintln\/\">C++23: A Modularized Standard Library, std::print and std::println<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/ranges-improvements-with-c-23\">Range Improvements with C++23<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c23-a-new-way-of-error-handling-with-stdexpected\/\">C++23: A New Way of Error Handling with std::expected<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c23-a-multidimensional-view\/\">C++23: A Multidimensional View<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c23-ranges-improvements-and-stdgenerator\/\">C++23: Range Improvements and std::generator<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"h8-c-20\"><span class=\"ez-toc-section\" id=\"C26\"><\/span>C++26<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c26-the-next-c-standard\/\">C++26: The Next C++ Standard<\/a>\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/an-overview-of-c26-core-language\/\">An Overview of C++26: Core Language<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/an-overview-of-c26-the-library\/\">An Overview of C++26: The Library<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/an-overview-of-c26-the-library-math\/\">An Overview Of C++26: The Library \u2013 Math<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/an-overview-of-c26-concurrency\/\">An Overview of C++26: Concurrency<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Core Language\n<ol class=\"wp-block-list\">\n<li>Reflection\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/reflection-in-c26\/\">Reflection<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/reflection-in-c26-metafunctions\/\">Reflection in C++26: Metafunctions<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/reflection-in-c26-metafunctions-for-enums-and-classes\/\">Reflection in C++26: Metafunctions for Enums and Classes<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/reflection-in-c26-determine-the-layout\/\">Reflection in C++26: Determine the Class Layout<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Contracts\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/contracts-in-c26\/\">Contracts in C++26<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/contracs-a-deep-dive\/\">Contracts: A Deep Dive<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/contracts-evaluation-semantic\/\">Contracts: Evaluation Semantic<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/placeholders-and-extended-character-set\/\">Placeholders and Extended Character Set<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c26-core-language-small-improvements\/\">Small improvements<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/small-safety-improvements-in-the-c-26-core-language\/\">Small Safety Improvements in the C++ 26 Core Language<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Library\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c26-library-string-and-string_view-processing\/\">string and string_view Processing<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Concurrency\n<ol class=\"wp-block-list\">\n<li>std::execution\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/stdexecution\/\">std::execution<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/stdexecution-asynchronous-algorithms\/\">std::execution: Asynchronous Algorithms<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/stdexecution-inclusive-scan\/\">std::execution: Inclusive Scan<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/stdexecution-composition-of-senders\/\">std::execution: Composition of Sender<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/stdexecution-sender\/\">std::execution: Sender<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/stdexecution-more-senders\/\">std::execution: More Sender<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Read-Copy Update and Hazard Pointers\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/deferred-reclamation-in-c26-read-copy-update-and-hazard-pointers\/\">Deferred Reclamation in C++26: Read-Copy Update and Hazard Pointers<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/a-lock-free-stack-a-simplified-implementation\/\">A Lock-Free Stack: A Simplified Implementation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/a-lock-free-stack-a-complete-implementation\/\">A Lock-Free Stack: A Complete Implementation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/a-lock-free-stack-atomic-smart-pointer\/\">A Lock-Free Stack: Atomic Smart Pointer<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/a-lock-free-stack-a-simple-garbage-collector\/\">A Lock-Free Stack: A Simple Garbage Collector<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/a-lock-free-stack-a-hazard-pointer-implementation\/\">A Lock-Free Stack: A Hazard Pointer Implementation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/a-lock-free-stack-a-hazard-pointer-implementation-explained-i\/\">A Lock-Free Stack: A Hazard Pointer Implementation Explained I<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/a-lock-free-stack-a-hazard-pointer-implementation-explained-ii\/\">A Lock-Free Stack: A Hazard Pointer Implementation Explained II<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/hazard-pointers-in-c26\/\">Hazard Pointers in C++26<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/read-copy-update-rcu\/\">Read-copy-update (RCU)<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Data-Parallel Types (SIMD)\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/data-parallel-types-simd\/\">Data-Parallel Types (SIMD)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/data-parallel-types-a-first-example\/\">Data-Parallel Types \u2013 A First Example<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/data-parallel-types-simd_mask\/\">Data-Parallel Types: simd_mask<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/data-parallel-types-reduction\/\">Data-Parallel Types: Reduction<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/data-parallel-types-algorithms\/\">Data-Parallel Types: Algorithms<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"c-core-guidelines\"><span class=\"ez-toc-section\" id=\"C_Core_Guidelines\"><\/span>C++ Core Guidelines<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/what-is-modern-c\">Two highly valuable resources<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/why-do-we-need-guidlines-for-modern-c\">Why do we need guidelines for modern C++?<\/a><\/li>\n\n\n\n<li>The C++ Core Guidelines:\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-the-philosophy\">The Philosophy<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-interfaces\">Interfaces I<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-interfaces-ii\">Interfaces II<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guideline-the-guidelines-support-library\">Guideline Support Library<\/a><\/li>\n\n\n\n<li>Functions\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-functions\">Definitions<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-how-to-pass-function-parameters\">Parameters: Syntax<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-semantic-of-function-parameter-and-return-values\">Parameters: Semantic<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Classes\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-class-rules\">General rules<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-constructors-assignments-and-desctructors\">The Rule of Zero, Five, or Six<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-destructor-rules\">Destructors<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-constructors\">Constructors<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/1Fz59Q\">Copy and Move<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-comparison-swap-and-hash\">Comparison, swap, and hash<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-function-objects-and-lambas\">Function objects and Lambdas<\/a><\/li>\n\n\n\n<li>Hierarchies\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-class-hierarchies\">General rules<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-more-rules-to-class-hierarchies\">Special rules I<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-the-remaining-rules-to-class-hierarchie\">Special rules II<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-accessing-objects-in-a-hierarchy\">Accessing Objects<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Overloading\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-rules-for-overloading-and-overload-operators\">Overloading and Overload Operators I<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-more-rules-to-overloading\">Overloading and Overload Operators II<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/WaohAC\">Unions<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-rules-for-enumerations\">Enums<\/a><\/li>\n\n\n\n<li>Resources\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/goo.gl\/uBFnwz\">General Rules<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-allocating-and-deallocating\">Allocation and Deallocation of Memory<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-rules-to-smart-pointers\">Smart Pointers<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-passing-smart-pointer\">Passing Smart Pointers<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Expressions and Statements\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-rules-for-expressions-and-statements\">Declarations<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-declarations-and-initialisations\">Declarations and Initialisations<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-more-rules-for-declarations\">More Rules for Declarations<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-rules-for-expressions\">Expressions<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-rules\">Expressions (Pointers)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-rules-for-conversions-and-casts\">Conversions and Casts<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-do-s-and-don-ts\">Rules about Don\u2019ts (std::move and slicing)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-rules-for-statements\">Rules for Statements<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-to-switch-or-not-to-switch-that-is-the-question\">To Switch or not to Switch, that is the Question<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-more-about-control-structures\">More about Control Structures<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-rules-to-statements-and-arithmetic-rules\">Arithmetic Rules<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Performance\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-rules-to-performance\">Rules about Performance<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-more-rules-to-performance\">More Rules about Performance<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-the-remaining-rules-to-performance\">The Remaining Rules about Performance<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Concurrency and Parallelism\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/goo.gl\/GpvmGT\">Rules about Concurrency and Parallelism<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-more-rules-to-concurrency-and-parallelism\">More Rules about Concurrency and Parallelism<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/TmHfVh\">Tools to Validate Concurrent-Code<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/GsFWPd\">Sharing Data between Threads<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/bD6gnk\">Taking Care of your Child<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-the-remaining-rules-to-concurrency\">More Traps in the Concurrency<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-be-aware-of-the-traps-of-condition-variables\">Be Aware of the Traps of Condition Variables<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-concurrency-and-lock-free-programming\">Concurrency and lock-free Programming<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-the-rules-to-lock-free-programming\">The Resolution of the Riddle<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-the-remaining-rules-to-lock-free-programming\">The Remaining Rules of lock-free Programming<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Error Handling\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-rules-to-error-handling\">Rules for Error Handling<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-a-detour-to-contracts\">A Short Detour to Contracts in C++20<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-the-noexcept-specifier-and-operator\">The noexcept Specifier and Operator<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-rules-to-exception-handling\">Rules about <\/a><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-rules-to-exception-handling\">E<\/a><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-rules-to-exception-handling\">xception<\/a><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-rules-to-exception-handling\"> Handling<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-when-you-can-t-throw-an-exception\">finally in C++<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/2ugQXq\">goto considered Evil<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-rules-for-constants-and-immutability\">Constants and Immutability<\/a><\/li>\n\n\n\n<li>Templates and Generic Programming\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-rules-for-templates-and-generic-programming\">Rules for Templates and Generic Programming<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-type-erasure\">Type Erasure<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-type-erasure-with-templates\">Type Erasure with Templates<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/FGZ8fT\">Better Specific or Generic?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-rules-for-the-usage-of-concepts-2\">Usage of Concepts<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/quajuA\">Definition of Concepts<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/XM5Q8P\">Definition of Concepts 2<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/pvYAcx\">Pass Function Objects as Operations<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/Ew8wsW\">Template Interfaces<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/D7qKDc\">Regular and SemiRegular Types<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/NxGe2m\">Surprises with Argument-Dependent Lookup<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/DRHeKL\">Template Definitions<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-specialisation-of-templates\">Ordering of User-Defined Types<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/4i3Tjm\">Templates and Hierarchies<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/78Ai6K\">Rules for Variadic Templates<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/GtDSfd\">Rules for Template Metaprogramming<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-programming-at-compile-time\">Programming at Compile Time<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-programming-at-compile-time-with-the-type-traits\">Programming at Compile Time with the Type-Traits<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-programming-at-compile-time-with-type-traits-ii\">Programming at Compile Time with the Type-Traits (The Second)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/c2SmXX\">Programming at Compile Time with constexpr<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/iyk3eX\">Other Template Rules<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/os1iQ5\">Surprise Includes with Function Template Specialisation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/V5kxeq\">Templates: Misconceptions and Surprises<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/goo.gl\/8J6sY3\">Types, Non-Types, and Templates as Template Parameters<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>C-Style Programming\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-mixing-c-with-c\">Mixing C with C++<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Source\n<ol class=\"wp-block-list\">\n<li><a href=\"http:\/\/bit.ly\/2DqZ4zs\">Source Files<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2DBeilg\">The Remaining Rules about Source Files<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2ZZQO2J\">Modules<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/30iePCe\">More Details to Modules<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>The Standard Library\n<ol class=\"wp-block-list\">\n<li><a href=\"http:\/\/bit.ly\/2EjTj70\">The Standard Library<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2M8GcvL\">std::array and std::vector are your Friends<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2MqOEqr\">More special Friends with std::map and std::unordered_map<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2KFbU1h\">Avoid Bounds Errors<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/31BaStd\">Rules for Strings<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2RxTKjf\">IOStreams<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2FIVCkS\">In- and Output with Streams<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2LEuJ5f\">Improved Performance with Iostreams<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/32CtUQy\">The Regular Expression Library<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2O8W2Yg\">More Rules about the Regular Expression Library<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/30ZVm98\">When RAII breaks<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Supporting Sections\n<ol class=\"wp-block-list\">\n<li><a href=\"http:\/\/bit.ly\/2yDR6jp\">Architectural Ideas<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-non-rules-and-myths\">Non-Rules and Myths<\/a>\n<ol class=\"wp-block-list\">\n<li><a href=\"http:\/\/bit.ly\/2TGv9tU\">More Non-Rules and Myths<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/further-myths-from-my-readers\">Myths of My Blog Readers<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/more-myths-of-my-blog-readers\/\">More Myths of My Blog Readers<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2lGQeaz\">Profiles<\/a>\n<ol class=\"wp-block-list\">\n<li><a href=\"http:\/\/bit.ly\/2lWqwik\">Type Safety<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2mxst5k\">Type Safety by Design<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2nXRqaz\">Bounds Safety<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-core-guidelines-lifetime-safety\">Lifetime Safety and Checking the Rules<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"http:\/\/bit.ly\/2McUs4r\">Naming and Layout Rules<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"h11-templates\"><span class=\"ez-toc-section\" id=\"Templates\"><\/span>Templates<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/template-get-insight\">First Steps<\/a><\/li>\n\n\n\n<li>Basics\n<ol class=\"wp-block-list\">\n<li>Function Templates\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/function-templates\">Function Templates<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/function-templates-more-details\">More Details: Explicit Template Arguments and Concepts<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Class Templates\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/class-templates\">Class Templates<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/surprise-included-inheritance-and-member-functions-of-class-templates\">Surprises Included: Inheritance and Member Functions of Class Templates<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/alias-templates-and-template-parameters\">Alias Templates and Template Parameters<\/a><\/li>\n\n\n\n<li>Template Arguments\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/template-arguments\">Template Arguments<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/template-argument-deduction-of-class-templates\">Template Argument Deduction of Class Templates<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Template Specialization\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/template-specialization\">Template Specialization<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/template-specialization-more-details\">More Details about Class Templates<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/full-specialization-of-function-templates\">Full Specialization of Function Templates<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Details\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/template-instantiation\">Template Instantiation<\/a><\/li>\n\n\n\n<li>Variadic Templates and Fold Expressions\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/variadic-templates-or-the-power-of-three-dots\">Variadic Templates or the Power of Three Dots<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/more-arbout-variadic-templates\">More about Variadic Templates \u2026<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/from-variadic-templates-to-fold-expressions\">From Variadic Templates to Fold Expressions<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/smart-tricks-with-fold-expressions\">Smart Tricks with Parameter Packs and Fold Expressions<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/visiting-a-std-variant-with-the-overload-pattern\">Visiting a std::variant with the Overload Pattern<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/special-friendship-of-templates\">The Special Friendship of Templates<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/dependent-types\">Dependent Names<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Techniques\n<ol class=\"wp-block-list\">\n<li>Automatic Return Type\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/automatic-return-type\">Automatic Return Type (C++98)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/automatic-return-type-c-11-14-20\">Automatic Return Type (C++11\/14\/20)<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Template Metaprogramming\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/template-metaprogramming-a-introduction\">How it All Started<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/template-metaprogramming-how-it-works\">How it Works<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/template-metaprogramming-hybrid-programming\">Hybrid Programming<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Type-Traits Library\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-type-traits-library-type-checks\">Type Checks<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-type-traits-library-type-comparisons\">Type Comparisons<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-type-traits-library-std-is-base-of\"><code>std::is_base_of<\/code><\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-type-traits-library\">Correctness<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/the-type-traits-library-performance\">Performance<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><code>constexpr<\/code>\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/constexprfunctions\"><code>constexpr<\/code> Functions<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/constexpr-and-consteval-functions-in-c-20\"><code>constexpr<\/code> and <code>consteval<\/code> Functions in C++20<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/constespr-if\"><code>constexpr if<\/code><\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Design\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/dynamic-and-static-polymorphism\">Dynamic versus Static Polymorphism<\/a><\/li>\n\n\n\n<li>CRTP\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/more-about-dynamic-and-static-polymorhism\">More about Dynamic versus Static Polymorphism<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/mixins\">Mixins<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/avoiding-temporaries-with-expression-templates\">Avoiding Temporaries with Expression Templates<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/policy-and-traits\">Policy<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/softwaredesign-with-traits-and-tag-dispatching\">Traits and Tag Dispatching<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/a-std-advance-implementation-with-c-98-c-17-and-c-20\">A <code>std::advance<\/code> Implementation based on C++98, C++11, and C++20<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/type-erasure\">Type Erasure<\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"h12-review\"><span class=\"ez-toc-section\" id=\"Review\"><\/span><a href=\"http:\/\/bit.ly\/2TGv9tU\">Review<\/a><span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"http:\/\/bit.ly\/2TGv9tU\">Clean C++<\/a><\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"h13-news\"><span class=\"ez-toc-section\" id=\"News\"><\/span><a href=\"http:\/\/bit.ly\/2TGv9tU\">News<\/a><span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/no-new-new\/\">No New <\/a><a href=\"http:\/\/bit.ly\/2TGv9tU\">New<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/cppcon-2018\/\">CppCon 2018<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/meeting-embedded-c-and-meeting-c\/\">Meeting Embedded and Meeting C++ 2018 &nbsp; &nbsp;<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/bit.ly\/PVSCompilerExplorer\">Compiler Explorer, PVS-Studio, and Terrible Simple Bugs<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/quo-vadids-modernes-c\">Quo Vadis \u2013 Modernes C++<\/a><\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"h14-tools\"><span class=\"ez-toc-section\" id=\"Tools\"><\/span><a href=\"http:\/\/bit.ly\/2TGv9tU\">Tools<\/a><span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"http:\/\/bit.ly\/2TGv9tU\">C++ Insights<\/a>\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-insights-conversions\">Implicit Conversions<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-insights-type-deduction\">Type Deduction<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-insights-template-instantiation\">Template Instantiation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-insights-variadic-templates\">Variadic Templates<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/c-insights-lambdas\">Lambdas<\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Welcome to the starting point of the Modernes C++ blog. This page provides a clear and structured overview of both existing and upcoming posts. The overview serves two purposes. First, it allows readers to quickly see which posts have already been published and easily find the content they\u2019re looking for. Second, it gives a glimpse [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":492,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[184],"tags":[],"class_list":["post-347","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-toc"],"_links":{"self":[{"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/posts\/347","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/comments?post=347"}],"version-history":[{"count":161,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/posts\/347\/revisions"}],"predecessor-version":[{"id":11366,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/posts\/347\/revisions\/11366"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/media\/492"}],"wp:attachment":[{"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/media?parent=347"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/categories?post=347"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/tags?post=347"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}