<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/">

    <channel>
    
    <title><![CDATA[Standard C++ | News]]></title>
    <link>http://isocpp.org/blog</link>
    <description></description>
    <dc:language>en</dc:language>
    <dc:rights>Copyright 2026</dc:rights>
    <admin:generatorAgent rdf:resource="https://expressionengine.com/" />
    

    <item>
      <title>Upcoming C++ User Group meetings in June 2026</title>
      <link>https://isocpp.org//blog/2026/05/upcoming-cpp-user-group-meetings-in-june-2026</link>
      <guid>https://isocpp.org//blog/2026/05/upcoming-cpp-user-group-meetings-in-june-2026</guid>
      <description><![CDATA[<p>
	Meeting C++ returns to posting the monthly overview posts on C++ User Group meetings!</p>
<blockquote>
	<h2>
		<a href="https://meetingcpp.com/meetingcpp/news/items/Upcoming-Cpp-User-Group-meetings-in-June-2026.html">Upcoming C++ User Group meetings in June 2026</a></h2>
	<p>
		by Jens Weller</p>
</blockquote>
<p>
	From the article:</p>
<blockquote>
	<p>
		In early April of 2023 I&#39;ve posted the last list of upcoming C++ User Group meetings, as a change in Meetup made this feature not accessible.</p>
	<p>
		I&#39;ve noticed last week that this has changed now, and so will return to posting this monthly list again. I&#39;m working on also integrating these into the website it self in June.</p>
	Its nice to see so many C++ User Groups to still be active!
	<p>
		&nbsp;</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Events,]]></dc:subject>
      <pubDate>Sun, 31 May 2026 12:38:50 +0000</pubDate>
      <dc:creator>Meeting C++</dc:creator>
    </item>

    <item>
      <title>Annotations for C++26 Hashing &#45;&#45; Krystian Piękoś</title>
      <link>https://isocpp.org//blog/2026/05/annotations-for-cpp26-hashing-krystian-piko</link>
      <guid>https://isocpp.org//blog/2026/05/annotations-for-cpp26-hashing-krystian-piko</guid>
      <description><![CDATA[<p>
	Static reflection already makes generic hashing in C++26 far more expressive, but annotations push it into genuinely ergonomic territory. By letting types explicitly opt-in to hashing and allowing individual members or base classes to be cleanly excluded, we get a solution that is both powerful and readable.</p>
<blockquote>
	<h3>
		<a href="https://blog.infotraining.pl/annotations-for-cpp-26-hashing">Annotations for C++26 Hashing</a></h3>
	<p>
		by Krystian Pi&#281;ko&#347;</p>
</blockquote>
<p>
	From the article:</p>
<blockquote>
	<p>
		In my&nbsp;<a href="https://blog.infotraining.pl/hashing-in-cpp-26" rel="noopener ugc" target="_blank">recent post</a>, I demonstrated how to use static reflection from C++26 to implement generic hash computation for custom types. Let&#39;s review the final implementation. The core of the solution is the calculate_hash() function, which iterates over sub-objects (including both base classes sub-objects and class/struct non-static data members) to compute a combined hash.</p>
	<p>
		template &lt;typename T&gt;<br />
		concept Hashable = requires {<br />
		&nbsp; { std::hash&lt;T&gt;{}(std::declval&lt;T&gt;()) } -&gt; std::convertible_to&lt;size_t&gt;;<br />
		};</p>
	<p>
		template &lt;typename T&gt;<br />
		&nbsp; requires std::is_class_v&lt;T&gt;<br />
		size_t calculate_hash(const T&amp; obj, size_t seed = 0)<br />
		{<br />
		&nbsp; constexpr auto ctx = std::meta::access_context::unchecked();</p>
	<p>
		&nbsp;<br />
		&nbsp; static constexpr auto r_subobjects = std::define_static_array(std::meta::subobjects_of(^^T, ctx));</p>
	<p>
		&nbsp; template for (constexpr auto r_sub : r_subobjects)<br />
		&nbsp; {<br />
		&nbsp;&nbsp;&nbsp; using Subobject_t = typename[:std::meta::type_of(r_sub):];<br />
		&nbsp;&nbsp;&nbsp; static_assert(Hashable&lt;Subobject_t&gt;, "Subobject must be hashable");<br />
		&nbsp;&nbsp;&nbsp; Utility::hash_combine(seed, obj.[:r_sub:])<br />
		&nbsp; }</p>
	<p>
		&nbsp; return seed;<br />
		}</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Articles & Books,]]></dc:subject>
      <pubDate>Fri, 29 May 2026 23:33:18 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>How ref qualifiers led to deducing this</title>
      <link>https://isocpp.org//blog/2026/05/how-ref-qualifiers-led-to-deducing-this</link>
      <guid>https://isocpp.org//blog/2026/05/how-ref-qualifiers-led-to-deducing-this</guid>
      <description><![CDATA[<p>
	A follow up on last weeks post on ref qualifiers:</p>
<blockquote>
	<h2>
		<a href="https://meetingcpp.com/blog/items/How-ref-qualifiers-led-to-deducing-this.html">How ref qualifiers led to deducing this</a></h2>
	<p>
		by Jens Weller</p>
</blockquote>
<p>
	From the article:</p>
<blockquote>
	<p>
		Last week I shared an overview on ref qualifiers with you, this is a follow up on this post. Featuring deducing this, a C++23 feature that should be available in your compiler if its been released in 2025 or later.</p>
	<p>
		Lets start with two more things you may want to know about ref qualifiers. First, const is also supported for the rvalue version: m::f()const &amp;&amp; exists, though this is mostly not very useful. Thats why you rarely see it covered, as const rvalues are unusual to unvalid. But thats where m::f()const&amp;&amp;=delete comes in, it allows you to turn these object states in to compilation errors.</p>
	As ref qualifiers are also often used...
	<p>
		&nbsp;</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Articles & Books,]]></dc:subject>
      <pubDate>Fri, 29 May 2026 14:23:44 +0000</pubDate>
      <dc:creator>Meeting C++</dc:creator>
    </item>

    <item>
      <title>CppCon 2025 Back to Basics: Master C++ Friendship &#45;&#45; Mateusz Pusz</title>
      <link>https://isocpp.org//blog/2026/05/cppcon-2025-back-to-basics-master-cpp-friendship-mateusz-pusz</link>
      <guid>https://isocpp.org//blog/2026/05/cppcon-2025-back-to-basics-master-cpp-friendship-mateusz-pusz</guid>
      <description><![CDATA[<p>
	<img alt="pusz-friendship.png" src="https://isocpp.org/files/img/pusz-friendship.png" style="width: 400px; margin: 10px; float: right;" />Registration is now open for CppCon 2026!&nbsp;The conference starts on September 12 and will be held&nbsp;<a href="https://cppcon.org/">in person in Aurora, CO</a>. To whet your appetite for this year&rsquo;s conference, we&rsquo;re posting videos of some of the top-rated talks from last year&#39;s conference. Here&rsquo;s another CppCon talk video we hope you will enjoy &ndash; and why not&nbsp;<a href="https://cppcon.org/registration/"><strong>register today</strong></a><strong>&nbsp;for CppCon 2026!</strong></p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=T08YxaCG_OY">Back to Basics: Master C++ Friendship</a></h3>
	<p>
		by Mateusz Pusz</p>
</blockquote>
<p>
	Summary of the talk:</p>
<blockquote>
	<p>
		C++ offers a rich set of access specifiers to control the visibility of class members. However, the friend keyword introduces a unique and often misunderstood concept. This talk explores the nuances of friendship, examining its role in code design, testing, and compilation performance optimization.<br />
		<br />
		We&#39;ll delve into the intricacies of friendship, exploring its benefits and potential pitfalls. We&#39;ll examine how to leverage friendship effectively, discuss best practices, and uncover hidden gems and common misconceptions. We will see how friendship affects name lookup and compile-time error messages. We will discuss best practices for using it effectively and learn how to avoid or resolve compilation problems that may occur when C++ templates are involved.<br />
		<br />
		By the end of this session, you&#39;ll have a solid grasp of friendship and be able to use it to write more elegant, efficient, and maintainable C++ code.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand,]]></dc:subject>
      <pubDate>Wed, 27 May 2026 21:49:28 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>C++26: Structured Bindings in Conditions &#45;&#45; Sandor Dargo</title>
      <link>https://isocpp.org//blog/2026/05/cpp26-structured-bindings-in-conditions-sandor-dargo</link>
      <guid>https://isocpp.org//blog/2026/05/cpp26-structured-bindings-in-conditions-sandor-dargo</guid>
      <description><![CDATA[<p>
	<img alt="SANDOR_DARGO_ROUND.JPG" src="https://isocpp.org/files/img/SANDOR_DARGO_ROUND.JPG" style="width: 200px; margin: 10px; float: right; height: 204px;" />Structured bindings in conditions may look like a small syntax sugar, but they let us write much more expressive conditional logic. By allowing decomposition and condition checking to live side by side, C++26 reduces boilerplate, improves locality, and better supports modern result types that bundle status and data together. This is a pragmatic, well-integrated evolution of a feature that has already proven its value since C++17.</p>
<blockquote>
	<h3>
		<a href="https://www.sandordargo.com/blog/2026/04/15/cpp26-structured-bindings-condition">C++26: Structured Bindings in Conditions</a></h3>
	<p>
		by Sandor Dargo</p>
</blockquote>
<p>
	From the article:</p>
<blockquote>
	<p>
		Structured bindings were introduced in C++17 as an alternative way of declaring variables. They allow you to decompose an object into a set of named variables, where the collection of those bindings conceptually represents the original object as a whole.</p>
	<pre>
// <a href="https://godbolt.org/z/97GaMajMP" rel="nofollow">https://godbolt.org/z/97GaMajMP</a>&#10;&#10;#include &lt;cassert&gt; #include &lt;string&gt; &#10;struct MyStruct {&#10;    int num;&#10;    std::string text;&#10;&#10;    bool operator==(const MyStruct&amp;) const noexcept = default;&#10;};&#10;&#10;MyStruct foo() {&#10;    return {42, "let&#39;s go"};&#10;}&#10;&#10;int main() {&#10;    const auto&amp; [n, t] = foo();&#10;    MyStruct ms{n, t};&#10;    assert(ms == foo());&#10;    return 0;&#10;}</pre>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Articles & Books,]]></dc:subject>
      <pubDate>Tue, 26 May 2026 22:57:06 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>CppCon 2025 Could C++ Developers Handle an ABI Break Today? &#45;&#45; Luis Caro Campos</title>
      <link>https://isocpp.org//blog/2026/05/cppcon-2025-could-cpp-developers-handle-an-abi-break-today-luis-caro-campos</link>
      <guid>https://isocpp.org//blog/2026/05/cppcon-2025-could-cpp-developers-handle-an-abi-break-today-luis-caro-campos</guid>
      <description><![CDATA[<p>
	<img alt="campos-break.png" src="https://isocpp.org/files/img/campos-break.png" style="width: 400px; margin: 10px; float: right;" />Registration is now open for CppCon 2026!&nbsp;The conference starts on September 12 and will be held&nbsp;<a href="https://cppcon.org/">in person in Aurora, CO</a>. To whet your appetite for this year&rsquo;s conference, we&rsquo;re posting videos of some of the top-rated talks from last year&#39;s conference. Here&rsquo;s another CppCon talk video we hope you will enjoy &ndash; and why not&nbsp;<a href="https://cppcon.org/registration/"><strong>register today</strong></a><strong>&nbsp;for CppCon 2026!</strong></p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=VbSKnvldtbs">Could C++ Developers Handle an ABI Break Today?</a></h3>
	<p>
		by Luis Caro Campos</p>
</blockquote>
<p>
	Summary of the talk:</p>
<blockquote>
	<p>
		The C++ Evolution Working Group recently reaffirmed its commitment to ABI stability, prioritizing link compatibility with C and older C++. The C++11 libstdc++ ABI updates introduced in gcc 5.1, although not strictly &ldquo;breaking&rdquo;, are still in the collective memory of C++ developers and this experience shows us how sensitive the ecosystem is to ABI updates.<br />
		<br />
		This talk challenges the assumption that a future ABI break would be equally problematic, as the landscape has evolved significantly in the last decade.<br />
		<br />
		On the one hand, the C++ standard has evolved in such a way that even if the standards committee and compiler vendors go through great lengths to avoid breaking the ABI of standard library implementations, library authors are not as cautious - so in practice, the ability to link objects built with different C++ standard levels does not hold true for a lot of cases.<br />
		<br />
		On the other hand, tooling has evolved significantly in this time period. For example, both Conan and vcpkg are able to &ldquo;tag&rdquo; binaries on some arbitrary ABI version. We can see similar examples in other tools or ecosystems that need to work around ABI complexities.<br />
		<br />
		This talk is not intended to argue about the merits or risks of future ABI changes - but to ask ourselves the question: are we overestimating the pain of a future ABI break?</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand,]]></dc:subject>
      <pubDate>Mon, 25 May 2026 21:47:37 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>Let the Compiler Check Your Units &#45;&#45; Wu Yongwei</title>
      <link>https://isocpp.org//blog/2026/05/let-the-compiler-check-your-units-wu-yongwei</link>
      <guid>https://isocpp.org//blog/2026/05/let-the-compiler-check-your-units-wu-yongwei</guid>
      <description><![CDATA[<p>
	<img alt="logo.png" src="https://isocpp.org/files/img/logo.png" style="width: 225px; margin: 10px; float: right;" />Mixing your units can be disastrous. Wu Yongwei takes a quick look at C++ unit libraries that can help keep everything in order.</p>
<blockquote>
	<h3>
		<a href="https://accu.org/journals/overload/34/192/wu/">Let the Compiler Check Your Units</a></h3>
	<p>
		by Wu Yongwei</p>
</blockquote>
<p>
	From the article:</p>
<blockquote>
	<p>
		I recently came across a C++ standard proposal P3045 [<a href="https://accu.org/journals/overload/34/192/wu/#_idTextAnchor011">P3045R7</a>], which aims to add physical units to C++. Curious, I looked into the existing unit libraries and went down quite a rabbit hole.</p>
	<p>
		<strong>Type safety and user-defined literals</strong></p>
	<p>
		Before exploring these libraries, I was already somewhat familiar with the idea of &lsquo;type safety&rsquo;. I was also aware that user-defined literals (UDLs) [<a href="https://accu.org/journals/overload/34/192/wu/#_idTextAnchor002">CppReference-1</a>] allow creating literals of specific types with ease. Typical uses in the standard library include&nbsp;<code>string</code>/<code>string_view</code>&nbsp;literals and the chrono library [<a href="https://accu.org/journals/overload/34/192/wu/#_idTextAnchor003">CppReference-2</a>], which make code both convenient and safe.</p>
	<p>
		Figure 1 shows some simple examples.</p>
	<pre>
auto msg = "Hello "s + user_name;&#10;auto t1 = chrono::steady_clock::now();&#10;this_thread::sleep_for(500ms);&#10;auto t2 = chrono::steady_clock::now();&#10;auto duration = t2 - t1;&#10;auto what = t1 + t2;      // Can&#39;t compile&#10;cout &lt;&lt; duration / 1.0ms; // To double, in ms</pre>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Articles & Books,]]></dc:subject>
      <pubDate>Fri, 22 May 2026 22:54:40 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>CppCon 2025 How To Build Robust C++ Inter&#45;Process Queues &#45;&#45; Jody Hagins</title>
      <link>https://isocpp.org//blog/2026/05/cppcon-2025-how-to-build-robust-cpp-inter-process-queues-jody-hagins</link>
      <guid>https://isocpp.org//blog/2026/05/cppcon-2025-how-to-build-robust-cpp-inter-process-queues-jody-hagins</guid>
      <description><![CDATA[<p>
	<img alt="hagins-robust.png" src="https://isocpp.org/files/img/hagins-robust.png" style="width: 400px; margin: 10px; float: right;" />Registration is now open for CppCon 2026!&nbsp;The conference starts on September 12 and will be held&nbsp;<a href="https://cppcon.org/">in person in Aurora, CO</a>. To whet your appetite for this year&rsquo;s conference, we&rsquo;re posting videos of some of the top-rated talks from last year&#39;s conference. Here&rsquo;s another CppCon talk video we hope you will enjoy &ndash; and why not&nbsp;<a href="https://cppcon.org/registration/"><strong>register today</strong></a><strong>&nbsp;for CppCon 2026!</strong></p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=AmPLoOfRFDs">How To Build Robust C++ Inter-Process Queues</a></h3>
	<p>
		by Jody Hagins</p>
</blockquote>
<p>
	Summary of the talk:</p>
<blockquote>
	<p>
		This talk will offer design and implementation details of a queue intended to be used between multiple processes.<br />
		<br />
		The C++ standard was written with a single-process worldview, mentioning processes only once&mdash;in a note stating that lock-free atomic operations work across process boundaries. This has led to widespread but incorrect advice about using std::atomic in shared memory. When moving queue implementations from threads to processes, seemingly rock-solid code can induce undefined behavior.<br />
		<br />
		In addition, traditional queue interfaces are fundamentally insufficient for cross-process communication. A properly designed inter-process queue API must enforce role separation, ensuring that a process can only perform operations appropriate to its designated role. For example, a producer process should not be able to consume messages or manage the queue itself, and the API should prevent multiple processes from accidentally assuming the same role in a single-producer design.<br />
		<br />
		By the end of this talk, you will understand the fundamental differences between thread process synchronization, how to design proper interfaces for interprocess queues that enforce correct usage across process boundaries, and practical techniques to ensure your cross-process code works reliably in production environments.<br />
		<br />
		Oh yeah, and you will have a full implementation that you can use and improve upon.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand,]]></dc:subject>
      <pubDate>Thu, 21 May 2026 21:43:57 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>Exploring ref qualifiers in C++</title>
      <link>https://isocpp.org//blog/2026/05/exploring-ref-qualifiers-in-cpp</link>
      <guid>https://isocpp.org//blog/2026/05/exploring-ref-qualifiers-in-cpp</guid>
      <description><![CDATA[<p>
	Recently I&#39;ve been wondering about ref qualifiers in C++.</p>
<blockquote>
	<h2>
		<a href="https://meetingcpp.com/blog/items/Exploring-ref-qualifiers-in-Cpp.html">Exploring ref qualifiers in C++</a></h2>
	<p>
		by Jens Weller</p>
</blockquote>
<p>
	From the article:</p>
<blockquote>
	<p>
		Ref qualifiers are today an old C++11 feature, and recently I wanted to know more about them. Especially their potential use cases.</p>
	<p>
		Thats a particular point with this feature, I&#39;ve seen examples - but often without a compelling use case. This feature is a great way to achieve very specific things in C++...</p>
	<p>
		&nbsp;</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Articles & Books,]]></dc:subject>
      <pubDate>Thu, 21 May 2026 15:12:55 +0000</pubDate>
      <dc:creator>Meeting C++</dc:creator>
    </item>

    <item>
      <title>The road to &amp;apos;import boost&amp;apos;: a library developer&apos;s journey into C++20 modules &#45;&#45; Rubén Pérez Hidalgo</title>
      <link>https://isocpp.org//blog/2026/05/the-road-to-import-boost-a-library-developers-journey-into-cpp20-modules-ru</link>
      <guid>https://isocpp.org//blog/2026/05/the-road-to-import-boost-a-library-developers-journey-into-cpp20-modules-ru</guid>
      <description><![CDATA[<p>
	C++20 modules have been in the standard for more than 5 years already. They promise to deliver a big change to how we write C++, but their adoption hasn&#39;t been as widespread as one would have expected. This talk is a deep dive into the practical aspects of C++20 modules, exploring the reality of the ecosystem as it is today.</p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=hD9JHkt7e2Y">The road to &#39;import boost&#39;: a library developer&#39;s journey into C++20 modules</a></h3>
	<p>
		Rub&eacute;n P&eacute;rez Hidalgo</p>
</blockquote>
<p>
	Watch now:</p>
<blockquote>
	<p>
		<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" frameborder="0" height="315" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/hD9JHkt7e2Y?si=ZNzgZD2L1f4Hl4be" title="YouTube video player" width="560"></iframe></p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand,]]></dc:subject>
      <pubDate>Wed, 20 May 2026 22:51:47 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>CppCon 2025 Concept&#45;based Generic Programming &#45;&#45; Bjarne Stroustrup</title>
      <link>https://isocpp.org//blog/2026/05/cppcon-2025-concept-based-generic-programming-bjarne-stroustrup1</link>
      <guid>https://isocpp.org//blog/2026/05/cppcon-2025-concept-based-generic-programming-bjarne-stroustrup1</guid>
      <description><![CDATA[<p>
	<img alt="stroustrup-concept.png" src="https://isocpp.org/files/img/stroustrup-concept.png" style="width: 400px; margin: 10px; float: right;" />Registration is now open for CppCon 2026!&nbsp;The conference starts on September 12 and will be held&nbsp;<a href="https://cppcon.org/">in person in Aurora, CO</a>. To whet your appetite for this year&rsquo;s conference, we&rsquo;re posting videos of some of the top-rated talks from last year&#39;s conference. Here&rsquo;s another CppCon talk video we hope you will enjoy &ndash; and why not&nbsp;<a href="https://cppcon.org/registration/"><strong>register today</strong></a><strong>&nbsp;for CppCon 2026!</strong></p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=VMGB75hsDQo">Concept-based Generic Programming</a></h3>
	<p>
		by Bjarne Stroustrup</p>
</blockquote>
<p>
	Summary of the talk:</p>
<blockquote>
	<p>
		This talk presents programming techniques to illustrate the facilities and principles of C++ generic programming using concepts. Concepts are C++&rsquo;s way to express constraints on generic code. As an initial example, it provides a simple type system that eliminate narrowing conversions and provides range checking.<br />
		<br />
		Concepts are used throughout to provide user-defined extensions to the type system. The aim is to show their utility and the fundamental ideas behind them, rather than to provide a detailed or complete explanation of C++&rsquo;s language support for generic programming or the extensive support provided by the standard library.<br />
		<br />
		The final sections briefly present design rationales and origins for key parts of the concept design, including use patterns, the relationship to Object-Oriented Programming, value arguments, syntax, concept type-matching, and definition checking. They also mention static reflection, a C++26 improvements in the support of general programming.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand,]]></dc:subject>
      <pubDate>Tue, 19 May 2026 21:39:13 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>Call for Sponsors &#45; Meeting C++ 2026</title>
      <link>https://isocpp.org//blog/2026/05/call-for-sponsors-meeting-cpp-2026</link>
      <guid>https://isocpp.org//blog/2026/05/call-for-sponsors-meeting-cpp-2026</guid>
      <description><![CDATA[<p>
	This years Meeting C++ conference is on the 26th - 28th November!</p>
<blockquote>
	<h2>
		<a href="https://meetingcpp.com/meetingcpp/news/items/Meeting-Cpp-2026--Call-for-Sponsors.html">Meeting C++ 2026: Call for Sponsors</a></h2>
	<p>
		by Jens Weller</p>
</blockquote>
<p>
	from the article:</p>
<blockquote>
	<p>
		Have you thought about the possibilty that you could have your employer sponsor Meeting C++ 2026?</p>
	<p>
		Maybe your employer is interested in being present as a sponsor at this years Meeting C++ conference? With the call for talks closing on June 4th, now is the ideal time to talk about sponsorships for Meeting C++!</p>
	The 15th Meeting C++ conference is looking for sponsors! Come to Berlin in late November and be part of a large gathering of the C++ community!
	<p>
		&nbsp;</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Events,]]></dc:subject>
      <pubDate>Tue, 19 May 2026 14:48:39 +0000</pubDate>
      <dc:creator>Meeting C++</dc:creator>
    </item>

    <item>
      <title>What reinterpret_cast doesn&apos;t do &#45;&#45; Andreas Fertig</title>
      <link>https://isocpp.org//blog/2026/05/what-reinterpret-cast-doesnt-do-andreas-fertig</link>
      <guid>https://isocpp.org//blog/2026/05/what-reinterpret-cast-doesnt-do-andreas-fertig</guid>
      <description><![CDATA[<header>
	<p>
		<img alt="Depositphotos_347968346_S.jpg" src="https://isocpp.org/files/img/Depositphotos_347968346_S.jpg" style="width: 200px; margin: 10px; float: right; height: 200px;" />In today&#39;s post, I will explain one of C++&#39;s biggest pitfalls:&nbsp;<code>reinterpret_cast</code>. Another title for this post could be:&nbsp;<em>This is&nbsp;not&nbsp;the cast you&#39;re looking for!</em></p>
</header>
<blockquote>
	<h3>
		<a href="https://andreasfertig.com/blog/2026/04/what-reinterpret_cast-doesnt-do/">What reinterpret_cast doesn&#39;t do</a></h3>
	<p>
		Andreas Fertig</p>
</blockquote>
<p>
	From the article:</p>
<blockquote>
	<p>
		My motivation for this blog post comes from multiple training classes I thought over the past several months and a couple of talks I gave. Since C++23, you have a new facility in the Standard Library:&nbsp;<code>std::start_lifetime_as</code>. When teaching class with a focus on embedded environments or presenting talks with such a focus, I started to add&nbsp;<code>std::start_lifetime_as</code>&nbsp;to the material. With an interesting outcome.</p>
	<p>
		The feedback I get is roughly:</p>
	<ul>
		<li>
			why do I need&nbsp;<code>std::start_lifetime_as</code>, I already have&nbsp;<code>reinterpret_cast</code>?</li>
		<li>
			why can I use&nbsp;<code>reinterpret_cast</code>?</li>
	</ul>
	<p>
		If you never heard of&nbsp;<code>start_lifetime_as</code>&nbsp;please consider reading my post,&nbsp;<a href="https://andreasfertig.com/blog/2025/04/the-correct-way-to-do-type-punning-in-cpp-the-second-act/">The correct way to do type punning in C++ - The second act</a>.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Articles & Books,]]></dc:subject>
      <pubDate>Mon, 18 May 2026 22:46:29 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>What Happens When a Destructor Throws &#45;&#45; Sandor Dargo</title>
      <link>https://isocpp.org//blog/2026/05/what-happens-when-a-destructor-throws-sandor-dargo</link>
      <guid>https://isocpp.org//blog/2026/05/what-happens-when-a-destructor-throws-sandor-dargo</guid>
      <description><![CDATA[<p>
	<img alt="SANDOR_DARGO_ROUND.JPG" src="https://isocpp.org/files/img/SANDOR_DARGO_ROUND.JPG" style="width: 200px; margin: 10px; float: right; height: 204px;" />Even experienced C++ developers sometimes stumble on a deceptively simple question: what actually happens when a destructor throws an exception? This post breaks down the mechanics behind stack unwinding, <code data-end="215" data-start="205">noexcept</code>, and why throwing from destructors is almost always a bad idea</p>
<blockquote>
	<h3>
		<a href="https://www.sandordargo.com/blog/2026/04/01/when-a-destructor-throws">What Happens When a Destructor Throws</a></h3>
	<p>
		by Sandor Dargo</p>
</blockquote>
<p>
	From the article:</p>
<blockquote>
	<p>
		Recently I wrote about&nbsp;<a href="https://devladder.substack.com/p/can-we-still-find-joy-in-programming">the importance of finding joy in our jobs on The Dev Ladder</a>. Mastery and deep understanding are key elements in finding that joy, especially now that generating code is cheap and increasingly done better by AI than by us.</p>
	<p>
		Then a memory surfaced. I frequently ask during interviews &mdash; as part of a code review exercise &mdash; what happens when a destructor throws. Way too many candidates, even those interviewing for senior positions, cannot answer the question. Most say it&rsquo;s bad practice, but cannot explain why. Some say the program might terminate. Getting an elaborate answer is rare.</p>
	<p>
		I&rsquo;m not saying it&rsquo;s a dealbreaker, but it definitely doesn&rsquo;t help.</p>
	<p>
		Let&rsquo;s see what actually happens.</p>
	<p id="the-role-of-a-destructor">
		<strong>The role of a destructor</strong></p>
	<p>
		A destructor is the key to implementing the RAII idiom. RAII matters because after you acquire a resource, things might go south. A function might need to return early, or it might throw. Making sure resources are released is cumbersome, and the cleanest way to achieve it is to wrap both acquisition and release in an object that handles this automatically.</p>
	<p>
		But what if the release itself is not successful?</p>
	<p>
		Destructors have no return value, so error reporting is limited. Typical options include logging, storing error state, or (discouraged) throwing.</p>
	<p>
		Why did I mark throwing an exception discouraged?</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Articles & Books,]]></dc:subject>
      <pubDate>Fri, 15 May 2026 22:42:26 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>C++: The Documentary trailer</title>
      <link>https://isocpp.org//blog/2026/05/cpp-the-documentary-trailer</link>
      <guid>https://isocpp.org//blog/2026/05/cpp-the-documentary-trailer</guid>
      <description><![CDATA[<p>
	Sponsored by <a href="https://cppcon.org/hudson-river-trading/">HRT</a> and produced by <a href="https://www.youtube.com/channel/UCsUalyRg43M8D60mtHe6YcA">CultRepo</a>, we&#39;re pleased to share the <a href="https://youtu.be/NXwTRzywDSk?si=VVLAe-08INWziWUs">official trailer for <strong><em>C++: The Documentary</em></strong></a>.</p>
<p>
	The trailer premieres today at 19:00 UTC. Click <strong data-end="323" data-start="310">Notify me</strong> on the YouTube Premiere page to get a reminder when it goes live.</p>
<p data-end="802" data-start="616">
	The film will have its world premiere on May 28 at a special live event in New York City&rsquo;s Financial District, followed by a panel discussion that will be recorded for later release. <em data-end="828" data-start="806">C++: The Documentary</em> will be released worldwide on YouTube on June 4, with the panel recording following a few days later.</p>
<p data-end="802" data-start="616">
	<a href="https://youtu.be/NXwTRzywDSk?si=VVLAe-08INWziWUs"><img alt="cppdoc-trailer.png" src="https://isocpp.org/files/img/cppdoc-trailer.png" style="width: 765px; margin: 10px; height: 431px;" /></a></p>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand, Events,]]></dc:subject>
      <pubDate>Thu, 14 May 2026 15:01:46 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>CppCon 2025 Crafting the Code You Don’t Write: Sculpting Software in an AI World &#45;&#45; Daisy Hollman</title>
      <link>https://isocpp.org//blog/2026/05/cppcon-2025-crafting-the-code-you-dont-write-sculpting-software-in-an-ai-wo</link>
      <guid>https://isocpp.org//blog/2026/05/cppcon-2025-crafting-the-code-you-dont-write-sculpting-software-in-an-ai-wo</guid>
      <description><![CDATA[<p>
	<img alt="hollman-ai.png" src="https://isocpp.org/files/img/hollman-ai.png" style="width: 400px; margin: 10px; float: right;" />Registration is now open for CppCon 2026!&nbsp;The conference starts on September 12 and will be held&nbsp;<a href="https://cppcon.org/">in person in Aurora, CO</a>. To whet your appetite for this year&rsquo;s conference, we&rsquo;re posting videos of some of the top-rated talks from last year&#39;s conference. Here&rsquo;s another CppCon talk video we hope you will enjoy &ndash; and why not&nbsp;<a href="https://cppcon.org/registration/"><strong>register today</strong></a><strong>&nbsp;for CppCon 2026!</strong></p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=v6OyVjQpjjc">Crafting the Code You Don&rsquo;t Write: Sculpting Software in an AI World</a></h3>
	<p>
		by Daisy Hollman</p>
</blockquote>
<p>
	Summary of the talk:</p>
<blockquote>
	<p>
		It&rsquo;s shockingly uncontroversial to say that the fields of developer experience and developer productivity have changed more in the past six months than in the 25 years before that.</p>
	<p>
		As part of the Claude Code team at Anthropic, I&rsquo;ve had the privilege of witnessing the evolution of agentic coding from proof-of-concept experiments to nearly autonomous software engineers in just six months. In this keynote, I&rsquo;ll share some of my experiences and learnings from that journey, talk about how LLMs work more generally, attempt some live demonstrations of the latest functionality, explore the future of agentic programming, and tie all of this back to what it means for your workflow as a software engineer.</p>
	<p>
		When I agreed to give this talk earlier this year, there was some portion of the narrative that involved &ldquo;why you should be using agents to accelerate your development process.&rdquo; Since then, the world of software engineering has evolved such that the interesting question is no longer &ldquo;why&rdquo; but &ldquo;how.&rdquo; Like sculptors facing the invention of power tools, or painters around the invention of photography, we now live in a world where vast quantities of rough-draft code can be generated with a very low barrier to entry. How does the role of a software engineer evolve when AI can autonomously implement features from requirements? How do we build safety features into the power tools we&rsquo;re chiseling away at our codebases with? What aspects of software craftsmanship become more important, not less, in an age of abundant code generation? And critically for the C++ community: how do we leverage these tools where correctness and performance are non-negotiable? The future isn&rsquo;t about AI replacing programmers, but about a fundamental shift in how we think about software creation. And surprisingly, you might not miss the old way of doing things.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand,]]></dc:subject>
      <pubDate>Wed, 13 May 2026 21:36:47 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>Evolving a Translation System with Reflection in C++</title>
      <link>https://isocpp.org//blog/2026/05/evolving-a-translation-system-with-reflection-in-cpp</link>
      <guid>https://isocpp.org//blog/2026/05/evolving-a-translation-system-with-reflection-in-cpp</guid>
      <description><![CDATA[<p>
	A nice example of C++26 reflection moving from theory into something practical.</p>
<blockquote>
	<h3>
		<a href="https://www.reddit.com/r/cpp/comments/1s5rzct/evolving_a_translation_system_with_reflection_in_c/">Evolving a Translation System with Reflection in C++</a></h3>
	<p>
		By GitHub user: friedkeenan<br />
		&nbsp;</p>
</blockquote>
<p>
	From the post:</p>
<blockquote>
	<p>
		Lately, I&rsquo;ve been using C++26 reflection to create some crazy and cursed stuff. But even though I quite enjoy that work, it is as well quite far from the norm of what reflection is going to offer us in our everyday code.</p>
	<p>
		Reflection is definitely not just that craziness, and so I want to present reflection in a more grounded environment, and in a way that will probably land as more typical usage as our codebases gradually come into contact with it.</p>
	<p>
		So then, in this blogpost, I will be exploring a spectrum of options for how reflection can upgrade a translation system that I already use in one of my projects. We&rsquo;ll look at where it&rsquo;s at now without reflection, identify places in which reflection could plausibly help, and then explore a series of modifications we could make to soothe those problem points.</p>
	<p>
		The purpose of looking at each of these options will not be to declare that one is clearly the best option or the one that makes the most sense, but rather to get a better feel for what could make sense to do, and whether some things are really worth the effort. We&rsquo;re trying to gauge the benefits that reflection can bring to our code.</p>
	<p>
		And who knows, even if one option is less appealing for this particular situation, maybe in a different situation it could be the perfect fit.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Articles & Books,]]></dc:subject>
      <pubDate>Tue, 12 May 2026 22:40:34 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>CppCon 2025 Reflection: C++’s Decade&#45;Defining Rocket Engine &#45;&#45; Herb Sutter</title>
      <link>https://isocpp.org//blog/2026/05/cppcon-2025-reflection-cpps-decade-defining-rocket-engine-herb-sutter</link>
      <guid>https://isocpp.org//blog/2026/05/cppcon-2025-reflection-cpps-decade-defining-rocket-engine-herb-sutter</guid>
      <description><![CDATA[<p>
	<img alt="sutter-rocket.png" src="https://isocpp.org/files/img/sutter-rocket.png" style="width: 400px; margin: 10px; float: right;" />Registration is now open for CppCon 2026!&nbsp;The conference starts on September 12 and will be held&nbsp;<a href="https://cppcon.org/">in person in Aurora, CO</a>. To whet your appetite for this year&rsquo;s conference, we&rsquo;re posting videos of some of the top-rated talks from last year&#39;s conference. Here&rsquo;s another CppCon talk video we hope you will enjoy &ndash; and why not&nbsp;<a href="https://cppcon.org/registration/"><strong>register today</strong></a><strong>&nbsp;for CppCon 2026!</strong></p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=7z9NNrRDHQU">Reflection: C++&rsquo;s Decade-Defining Rocket Engine</a></h3>
	<p>
		by Herb Sutter</p>
</blockquote>
<p>
	Summary of the talk:</p>
<blockquote>
	<p>
		In June 2025, C++ crossed a Rubicon: it handed us the keys to its own machinery. For the first time, C++ can describe itself&mdash;and generate more. The first compile-time reflection features in draft C++26 mark the most transformative turning point in our language&rsquo;s history by giving us the most powerful new engine for expressing efficient abstractions that C++ has ever had, and we&rsquo;ll need the next decade to discover what this rocket can do.</p>
	<p>
		This session is a high-velocity tour through what reflection enables today in C++26, and what it will enable next. We&rsquo;ll start with live compiler demos (Godbolt, of course) to show how much the initial C++26 feature set can already do. Then we&rsquo;ll jump a few years ahead, using Dan Katz&rsquo;s Clang extensions and my own cppfront reflection implementation to preview future capabilities that could reshape not just C++, but the way we think about programming itself.</p>
	<p>
		We&rsquo;ll see how reflection can simplify C++&rsquo;s future evolution by reducing the need for as many bespoke new language features, since many can now be expressed as reusable compile-time libraries&mdash;faster to design, easier to test, and portable from day one. We&rsquo;ll even glimpse how it might solve a problem that has long eluded the entire software industry, in a way that benefits every language.</p>
	<p>
		The point of this talk isn&rsquo;t to immediately grok any given technique or example. The takeaway is bigger: to leave all of us dizzy from the sheer volume of different examples, asking again and again, &ldquo;Wait, we can do that now?!&rdquo;&mdash;to fire up our imaginations to discover and develop this enormous new frontier together, and chart the strange new worlds C++ reflection has just opened for us to explore.</p>
	<p>
		Reflection has arrived, more is coming, and the frontier is open. Let&rsquo;s go.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand,]]></dc:subject>
      <pubDate>Mon, 11 May 2026 21:33:30 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>CppCon 2025 Back to Basics: Move Semantics &#45;&#45; Ben Saks</title>
      <link>https://isocpp.org//blog/2026/05/cppcon-2025-back-to-basics-move-semantics-ben-saks</link>
      <guid>https://isocpp.org//blog/2026/05/cppcon-2025-back-to-basics-move-semantics-ben-saks</guid>
      <description><![CDATA[<p>
	<img alt="semantics-sks.png" src="https://isocpp.org/files/img/semantics-sks.png" style="width: 400px; margin: 10px; float: right;" />Registration is now open for CppCon 2026!&nbsp;The conference starts on September 12 and will be held&nbsp;<a href="https://cppcon.org/">in person in Aurora, CO</a>. To whet your appetite for this year&rsquo;s conference, we&rsquo;re posting videos of some of the top-rated talks from last year&#39;s conference. Here&rsquo;s another CppCon talk video we hope you will enjoy &ndash; and why not&nbsp;<a href="https://cppcon.org/registration/"><strong>register today</strong></a><strong>&nbsp;for CppCon 2026!</strong></p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=szU5b972F7E">Back to Basics: Move Semantics</a></h3>
	<p>
		by Ben Saks</p>
</blockquote>
<p>
	Summary of the talk:</p>
<blockquote>
	<p>
		While many C++ programmers are familiar with the broad idea of move semantics, even experienced C++ programmers often struggle with the fine details. For example, many programmers are unclear on exactly when an object is considered implicitly movable and when std::move() is required to make the object movable. This is especially unfortunate because using std::move() when it&#39;s unnecessary sometimes degrades performance.<br />
		<br />
		This session starts by explaining how move semantics can substantially improve performance for certain types. It then shows how to implement a type with move semantics, and explores some important design issues in creating these types. After that, it explains how types like std::vector&#65308;T&#65310; can operate much more efficiently on objects of types that support move semantics.<br />
		<br />
		You&#39;ll leave this session with a clearer understanding of:</p>
	<ul>
		<li>
			how to implement move-semantic types,</li>
		<li>
			how to take maximum advantage of move-semantic types, and</li>
		<li>
			how move semantics are related to other language features like return-value optimization.</li>
	</ul>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand,]]></dc:subject>
      <pubDate>Thu, 07 May 2026 21:31:37 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>The ACCU on Sea 2026 Schedule is Now Announced &#45;&#45; ACCU</title>
      <link>https://isocpp.org//blog/2026/05/the-accu-on-sea-2026-schedule-is-now-announced</link>
      <guid>https://isocpp.org//blog/2026/05/the-accu-on-sea-2026-schedule-is-now-announced</guid>
      <description><![CDATA[<p>
	C++ on Sea and the ACCU Conference combine, this, year for one big festival of C++ by the sea!</p>
<blockquote>
	<h3>
		<a href="https://accuonsea.uk/news/the-2026-schedule-is-here-plus-workshops-tickets-and-hoodies/">The 2026 Schedule is Here!</a></h3>
	<p>
		by ACCU</p>
</blockquote>
<p>
	From the article:</p>
<blockquote>
	<p>
		Four days, five tracks, and a lineup that spans the full breadth of what ACCU on Sea is about: deep C++ content, broader software craft, and the kind of talks that make you rethink something you thought you understood.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Events, Training,]]></dc:subject>
      <pubDate>Thu, 07 May 2026 18:40:56 +0000</pubDate>
      <dc:creator>Phil Nash</dc:creator>
    </item>

    <item>
      <title>JSON and C++26 compile&#45;time reflection: a talk &#45;&#45; Daniel Lemire</title>
      <link>https://isocpp.org//blog/2026/05/json-and-cpp26-compile-time-reflection-a-talk-daniel-lemire</link>
      <guid>https://isocpp.org//blog/2026/05/json-and-cpp26-compile-time-reflection-a-talk-daniel-lemire</guid>
      <description><![CDATA[<p>
	The next C++ standard (C++26) is getting exciting new features. One of these features is compile-time reflection. It is ideally suited to serialize and deserialize data at high speed. To test it out, we extended our fast JSON library (simdjson) and we gave a talk at CppCon 2025. The video is out on YouTube.</p>
<blockquote>
	<h3>
		<a href="https://lemire.me/blog/2026/03/26/json-and-c26-compile-time-reflection-a-talk/">JSON and C++26 compile-time reflection: a talk</a></h3>
	<p>
		by Daniel Lemire</p>
</blockquote>
<p>
	Watch now:</p>
<blockquote>
	<p>
		<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" frameborder="0" height="315" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/Mcgk3CxHYMs?si=23ESHbX4Ak8a828Q" title="YouTube video player" width="560"></iframe></p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand,]]></dc:subject>
      <pubDate>Wed, 06 May 2026 22:35:16 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>CppCon 2025 Beyond Sequential Consistency: Unlocking Hidden Performance Gains &#45;&#45; Christopher Fretz</title>
      <link>https://isocpp.org//blog/2026/05/cppcon-2025-beyond-sequential-consistency-unlocking-hidden-performance-gain</link>
      <guid>https://isocpp.org//blog/2026/05/cppcon-2025-beyond-sequential-consistency-unlocking-hidden-performance-gain</guid>
      <description><![CDATA[<p>
	<img alt="sequential-fretz.png" src="https://isocpp.org/files/img/sequential-fretz.png" style="width: 400px; margin: 10px; float: right;" />Registration is now open for CppCon 2026!&nbsp;The conference starts on September 12 and will be held&nbsp;<a href="https://cppcon.org/">in person in Aurora, CO</a>. To whet your appetite for this year&rsquo;s conference, we&rsquo;re posting videos of some of the top-rated talks from last year&#39;s conference. Here&rsquo;s another CppCon talk video we hope you will enjoy &ndash; and why not&nbsp;<a href="https://cppcon.org/registration/"><strong>register today</strong></a><strong>&nbsp;for CppCon 2026!</strong></p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=6AnHbZbLr2o">Beyond Sequential Consistency: Unlocking Hidden Performance Gains</a></h3>
	<p>
		by Christopher Fretz</p>
</blockquote>
<p>
	Summary of the talk:</p>
<blockquote>
	<p>
		In 2011, C++ introduced a formally defined memory model, providing a foundation for portable, multi-threaded code with well-defined correctness guarantees. This was a major milestone, enabling expressive threading primitives and safe concurrency patterns while allowing low-level optimizations for performance.<br />
		<br />
		By default, C++ atomics enforce sequential consistency, which ensures intuitive, predictable behavior. However, these strong guarantees often exceed what&rsquo;s necessary for correctness and come with a performance cost.<br />
		<br />
		This talk delves into weaker memory orderings, particularly acquire/release and relaxed semantics, using a ring buffer as a practical example of how they can be used. We&rsquo;ll also examine how the C++ memory model maps to real hardware, focusing on x86&rsquo;s native guarantees, and comparing against less coherent platforms like ARM. We&#39;ll explore how strategic use of weaker synchronization can unlock significant performance gains without sacrificing correctness.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand,]]></dc:subject>
      <pubDate>Tue, 05 May 2026 21:28:00 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>C++26: A User&#45;Friendly assert() macro &#45;&#45; Sandor Dargo</title>
      <link>https://isocpp.org//blog/2026/05/cpp26-a-user-friendly-assert-macro-sandor-dargo</link>
      <guid>https://isocpp.org//blog/2026/05/cpp26-a-user-friendly-assert-macro-sandor-dargo</guid>
      <description><![CDATA[<p>
	<img alt="SANDOR_DARGO_ROUND.JPG" src="https://isocpp.org/files/img/SANDOR_DARGO_ROUND.JPG" style="width: 200px; margin: 10px; float: right; height: 204px;" />C++26 is bringing some long-overdue changes to&nbsp;<code>assert()</code>. But why are those changes needed? And when do we actually use&nbsp;<code>assert</code>, anyway?</p>
<p>
	At its core,&nbsp;<code>assert()</code>&nbsp;exists to validate runtime conditions. If the given expression evaluates to&nbsp;<code>false</code>, the program aborts. I&rsquo;m almost certain you&rsquo;ve used it before &mdash; at work, in personal projects, or at the very least in examples and code snippets.</p>
<p>
	So what&rsquo;s the problem?</p>
<blockquote>
	<h3>
		<a href="https://www.sandordargo.com/blog/2026/03/25/cpp26-user-friendly-assert">C++26: A User-Friendly assert() macro</a></h3>
	<p>
		by Sandor Dargo</p>
</blockquote>
<p>
	From the article:</p>
<blockquote>
	<p>
		<code>assert()</code>&nbsp;is a macro &mdash; and a slightly sneaky one at that. Its name is written in lowercase, so it doesn&rsquo;t follow the usual&nbsp;<em>SCREAMING_SNAKE_CASE</em>&nbsp;convention we associate with macros. There&rsquo;s a good chance you&rsquo;ve been using it for years without ever thinking about its macro nature.</p>
	<p>
		Macros, of course, aren&rsquo;t particularly popular among modern C++ developers. But the issue here isn&rsquo;t&nbsp;<a href="https://arne-mertz.de/2019/03/macro-evil/">the usual - but valid -&nbsp;<em>&ldquo;macros are evil&rdquo;</em>&nbsp;argument</a>. The real problem is more specific:</p>
	<blockquote>
		<p>
			<em>The preprocessor only understands parentheses for grouping. It does not understand other C++ syntax such as template angle brackets or brace-initialization.</em></p>
	</blockquote>
	<p>
		As a result, several otherwise perfectly valid-looking assertions fail to compile:</p>
	<div>
		<table>
			<tbody>
				<tr>
					<td>
						<pre class="prettyprint lang-cpp">
// https://godbolt.org/z/9sqM7PvWh&#10;using Int = int;&#10;int x = 1, y = 2;&#10;&#10;assert(std::is_same&lt;int, Int&gt;::value);&#10;assert([x, y]() { return x &lt; y; }() == 1);&#10;assert(std::vector&lt;int&gt;{1, 2, 3}.size() == 3);</pre>
					</td>
				</tr>
			</tbody>
		</table>
		<div style="clear:both;">
			&nbsp;</div>
	</div>
</blockquote>
<p>
	&nbsp;</p>]]></description>
      <dc:subject><![CDATA[News, Articles & Books,]]></dc:subject>
      <pubDate>Mon, 04 May 2026 22:31:55 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>Results summary: 2026 Annual C++ Developer Survey &amp;quot;Lite&amp;quot;</title>
      <link>https://isocpp.org//blog/2026/05/2026-survey-summary</link>
      <guid>https://isocpp.org//blog/2026/05/2026-survey-summary</guid>
      <description><![CDATA[<p>
	<strong>Thank you </strong>to everyone who reponded to&nbsp;<a href="https://isocpp.org/blog/2026/04/2026-annual-cpp-developer-survey-lite1">our 2026 annual global C++ developer survey</a>. As promised, here is a summary of the results, including one-page summaries of your answers to the free-form questions:</p>
<blockquote>
	<h3>
		<a href="https://isocpp.org/files/papers/CppDevSurvey-2026-summary.pdf">CppDevSurvey-2026-summary.pdf</a></h3>
</blockquote>
<p>
	A 145-page version of this report that also includes all individual write-in responses has now been forwarded to the C++ standards committee and C++ product vendors, to help inform C++ evolution and tooling.</p>
<p>
	Your feedback is valuable, and appreciated.</p>]]></description>
      <dc:subject><![CDATA[News, Product News, Standardization,]]></dc:subject>
      <pubDate>Mon, 04 May 2026 21:04:35 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>Stackless coroutines for gamedev in ~200 lines of C++ &#45;&#45; Vittorio Romeo</title>
      <link>https://isocpp.org//blog/2026/05/stackless-coroutines-for-gamedev-in-200-lines-of-cpp-vittorio-romeo</link>
      <guid>https://isocpp.org//blog/2026/05/stackless-coroutines-for-gamedev-in-200-lines-of-cpp-vittorio-romeo</guid>
      <description><![CDATA[<p>
	C++20 coroutines have lovely syntax, but they&#39;re a terrible fit for games.</p>
<p>
	In this article, we&#39;ll build a macro-base alternative that&#39;s more suitable for game development in ~200 lines of C++.</p>
<blockquote>
	<h3>
		<a href="https://vittorioromeo.com/index/blog/sfex_coroutine.html">Stackless coroutines for gamedev in ~200 lines of C++</a></h3>
	<p>
		by Vittorio Romeo</p>
</blockquote>
<p>
	From the article:</p>
<blockquote>
	<p>
		For a game I want a coroutine that is part of an object&rsquo;s data. When the object dies, the coroutine dies with it. When I serialize the object to a save buffer, the coroutine&rsquo;s state goes with it. When the optimizer is off, there is no extra cost compared to the equivalent state machine. C++20 coroutines do not provide any of these guarantees out of the box.</p>
	<p>
		Let&rsquo;s build something that does.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Articles & Books,]]></dc:subject>
      <pubDate>Fri, 01 May 2026 21:58:16 +0000</pubDate>
      <dc:creator>Vittorio Romeo</dc:creator>
    </item>

    <item>
      <title>GCC 16.1 released: C++26 reflection / contracts / safety hardening, C++20 by default, and more!</title>
      <link>https://isocpp.org//blog/2026/04/gcc-16.1</link>
      <guid>https://isocpp.org//blog/2026/04/gcc-16.1</guid>
      <description><![CDATA[<p>
	GCC 16.1 has been released! Lots of good C++26 material including reflection and contracts.</p>
<blockquote>
	<h3>
		<a href="https://gcc.gnu.org/gcc-16/changes.html#cxx">GCC 16 Release Series: Changes, New Features, and Fixes</a></h3>
</blockquote>
<p>
	From the announcement:</p>
<blockquote>
	<ul>
		<li>
			C++20 by default: [...]&nbsp;<em>N.B. C++20 modules support is still experimental and must be enabled by&nbsp;<a href="https://gcc.gnu.org/onlinedocs/gcc-16.1.0/gcc/C_002b_002b-Dialect-Options.html#index-fmodules">-fmodules</a>.</em></li>
	</ul>
	<ul>
		<li>
			Several C++26 features have been implemented:
			<ul>
				<li>
					<a href="https://wg21.link/P2996R13">P2996R13</a>, Reflection (<a href="https://gcc.gnu.org/PR120775">PR120775</a>, enabled by&nbsp;<code>-std=c++26 -freflection</code>)</li>
				<li>
					<a href="https://wg21.link/P3394R4">P3394R4</a>, Annotations for Reflection</li>
				<li>
					<a href="https://wg21.link/P3293R3">P3293R3</a>, Splicing a base class subobject</li>
				<li>
					<a href="https://wg21.link/P3096R12">P3096R12</a>, Function Parameter Reflection</li>
				<li>
					<a href="https://wg21.link/P3491R3">P3491R3</a>,&nbsp;<code>define_static_</code>{<code>string</code>,<code>object</code>,<code>array</code>} (<a href="https://gcc.gnu.org/PR120783">PR120783</a>)</li>
				<li>
					<a href="https://wg21.link/P3560R2">P3560R2</a>, Error Handling in Reflection</li>
				<li>
					<a href="https://wg21.link/P1306R5">P1306R5</a>, Expansion statements (<a href="https://gcc.gnu.org/PR120776">PR120776</a>)</li>
				<li>
					<a href="https://wg21.link/P2900R14">P2900R14</a>, Contracts (<a href="https://gcc.gnu.org/PR119061">PR119061</a>)</li>
				<li>
					<a href="https://wg21.link/P2795R5">P2795R5</a>, Erroneous behavior for uninitialized reads (<a href="https://gcc.gnu.org/PR114457">PR114457</a>)</li>
				<li>
					[...]</li>
			</ul>
		</li>
	</ul>
	<ul>
		<li>
			Improved experimental C++20 modules support:
			<ul>
				<li>
					New command line option&nbsp;<code>--compile-std-module</code>&nbsp;that conveniently builds the&nbsp;<code>&lt;bits/stdc++.h&gt;</code>&nbsp;header unit and the&nbsp;<code>std</code>&nbsp;and&nbsp;<code>std.compat</code>&nbsp;modules before compiling any source files explicitly specified on the command line.</li>
				<li>
					Whenever the&nbsp;<code>&lt;bits/stdc++.h&gt;</code>&nbsp;header unit has been built, GCC now transparently translates an&nbsp;<code>#include</code>&nbsp;of any importable standard library header into an&nbsp;<code>import</code>&nbsp;of&nbsp;<code>&lt;bits/stdc++.h&gt;</code>.</li>
				<li>
					Many reported bugs have been fixed, thanks to Nathaniel Shead.</li>
				<li>
					[...]</li>
			</ul>
		</li>
	</ul>
	<h4 id="libstdcxx">
		<a href="https://gcc.gnu.org/gcc-16/changes.html#libstdcxx">Runtime Library (libstdc++)</a></h4>
	<ul>
		<li>
			<code><font face="Consolas, Courier New, Lucida Console, monospace">[...]</font></code></li>
		<li>
			<code><font face="Consolas, Courier New, Lucida Console, monospace">Improved experimental support for [...]</font></code>
			<ul>
				<li>
					<code>std::mdspan</code>, thanks to Luc Grosheintz.</li>
				<li>
					<code>[...]</code></li>
				<li>
					<code>std::simd</code>.</li>
				<li>
					<code>std::inplace_vector</code>.</li>
				<li>
					<code>[...]</code></li>
			</ul>
		</li>
	</ul>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Product News, Standardization,]]></dc:subject>
      <pubDate>Thu, 30 Apr 2026 22:36:23 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>Glaze 7.2 &#45; C++26 Reflection | YAML, CBOR, MessagePack, TOML and more</title>
      <link>https://isocpp.org//blog/2026/04/glaze-7.2-cpp26-reflection-yaml-cbor-messagepack-toml-and-more</link>
      <guid>https://isocpp.org//blog/2026/04/glaze-7.2-cpp26-reflection-yaml-cbor-messagepack-toml-and-more</guid>
      <description><![CDATA[<p>
	Glaze is a high-performance C++23 serialization library with compile-time reflection. It has grown to support many more formats and features, and in v7.2.0 C++26 Reflection support has been merged!</p>
<blockquote>
	<h3>
		<a href="https://www.reddit.com/r/cpp/comments/1rrq9e6/glaze_72_c26_reflection_yaml_cbor_messagepack/">Glaze 7.2 - C++26 Reflection | YAML, CBOR, MessagePack, TOML and more</a></h3>
</blockquote>
<p>
	From the article:</p>
<blockquote>
	<p>
		Glaze now supports C++26 reflection with experimental GCC and Clang compilers. GCC 16 will soon be released with this support. When enabled, Glaze replaces the traditional&nbsp;<code style="font-size: 18px;">__PRETTY_FUNCTION__</code><span style="font-size: 18px;">&nbsp;parsing and structured binding tricks with proper compile-time reflection primitives (</span><code style="font-size: 18px;">std::meta</code><span style="font-size: 18px;">).</span></p>
	<p>
		The API doesn&#39;t change at all. You just get much more powerful automatic reflection that still works with Glaze overrides! Glaze was designed with automatic reflection in mind and still lets you customize reflection metadata using&nbsp;<code>glz::meta</code>&nbsp;on top of what&nbsp;<code>std::meta</code>&nbsp;provides via defaults.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Articles & Books,]]></dc:subject>
      <pubDate>Tue, 28 Apr 2026 22:25:57 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>CppCon 2025 The Wonderful World of Designing a USB Stack Using Modern C++ &#45;&#45; Madeline Schneider</title>
      <link>https://isocpp.org//blog/2026/04/cppcon-2025-the-wonderful-world-of-designing-a-usb-stack-using-modern-cpp-m</link>
      <guid>https://isocpp.org//blog/2026/04/cppcon-2025-the-wonderful-world-of-designing-a-usb-stack-using-modern-cpp-m</guid>
      <description><![CDATA[<p>
	<img alt="usbstack-schneider.png" src="https://isocpp.org/files/img/usbstack-schneider.png" style="width: 400px; margin: 10px; float: right;" />Registration is now open for CppCon 2026!&nbsp;The conference starts on September 12 and will be held&nbsp;<a href="https://cppcon.org/">in person in Aurora, CO</a>. To whet your appetite for this year&rsquo;s conference, we&rsquo;re posting videos of some of the top-rated talks from last year&#39;s conference. Here&rsquo;s another CppCon talk video we hope you will enjoy &ndash; and why not&nbsp;<a href="https://cppcon.org/registration/"><strong>register today</strong></a><strong>&nbsp;for CppCon 2026!</strong></p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=Kbj_c-12yrA">The Wonderful World of Designing a USB Stack Using Modern C++</a></h3>
	<p>
		by Madeline Schneider</p>
</blockquote>
<p>
	Summary of the talk:</p>
<blockquote>
	<p>
		Have you ever wondered how to design a library to abstract and manage complex communication protocols like USB? Have you ever wondered which parts of a protocol need to be hardware abstractions and which parts are hardware agnostic? Well you&rsquo;re in luck, my mentor and I have designed a USB stack from the ground up in modern C++! We found that the public offerings did not meet our needs. Our requirements are:</p>
	<ul>
		<li>
			Resource efficient</li>
		<li>
			Portable</li>
		<li>
			Modular</li>
		<li>
			Convenient to use</li>
		<li>
			Distributable via single pre-built binary using conan</li>
		<li>
			Without allocations after initialization</li>
	</ul>
	<p>
		In this talk you&rsquo;ll learn the basics of how USB works at the lowest level from a software perspective. You&rsquo;ll learn why malleability and freedom are so important for USB device development and how C++ makes such a library design easy to implement. Embark with me on a deep-dive into shaping a library where complexity runs wild. This talk will have lessons on library and API design in situations where the degrees of freedom are vast and all parts must magically fit together. By the end, you&rsquo;ll carry away practical patterns for taming vast design spaces&mdash;skills that apply to any ambitious library, far beyond USB.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand,]]></dc:subject>
      <pubDate>Mon, 27 Apr 2026 21:25:11 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>CppCon 2025 Can Standard C++ Replace CUDA for GPU Acceleration? &#45;&#45; Elmar Westphal</title>
      <link>https://isocpp.org//blog/2026/04/cppcon-2025-can-standard-cpp-replace-cuda-for-gpu-acceleration-elmar-westph</link>
      <guid>https://isocpp.org//blog/2026/04/cppcon-2025-can-standard-cpp-replace-cuda-for-gpu-acceleration-elmar-westph</guid>
      <description><![CDATA[<p>
	<img alt="cuda-westphal.png" src="https://isocpp.org/files/img/cuda-westphal.png" style="width: 400px; margin: 10px; float: right;" />Registration is now open for CppCon 2026!&nbsp;The conference starts on September 12 and will be held&nbsp;<a href="https://cppcon.org/">in person in Aurora, CO</a>. To whet your appetite for this year&rsquo;s conference, we&rsquo;re posting videos of some of the top-rated talks from last year&#39;s conference. Here&rsquo;s another CppCon talk video we hope you will enjoy &ndash; and why not&nbsp;<a href="https://cppcon.org/registration/"><strong>register today</strong></a><strong>&nbsp;for CppCon 2026!</strong></p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=EOvukoCyW7A">Can Standard C++ Replace CUDA for GPU Acceleration?</a></h3>
	<p>
		by Elmar Westphal</p>
</blockquote>
<p>
	Summary of the talk:</p>
<blockquote>
	<p>
		On top of the woes of multi-threaded programming itself, coding for GPUs used to be about dealing with kernels, separate memory domains, warps, blocks and other strange things. Later, life became easier and you could sprinkle in a bunch of pragmas, hoping that your favorite language extension would deal with all of this for you, and better memory model abstractions came up that were less painful to deal with. In recent years, new drivers (seemingly) levelled the boundaries between memory domains and new compilers allow us to deploy code to the GPU using standard C++ execution policies. The performance of the generated code is often similar to that of its CUDA-C++ counterpart. Of course there is no magic bullet to shoot at your (legacy) code and there are caveats, but come and see how using standard parallelism (also) for programming GPUs makes it a lot easier to write portable and more future-proof high-performance C++ code.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand,]]></dc:subject>
      <pubDate>Thu, 23 Apr 2026 21:23:33 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>Behold the power of meta::substitute &#45;&#45; Barry Revzin</title>
      <link>https://isocpp.org//blog/2026/04/behold-the-power-of-metasubstitute-barry-revzin</link>
      <guid>https://isocpp.org//blog/2026/04/behold-the-power-of-metasubstitute-barry-revzin</guid>
      <description><![CDATA[<p>
	What if string formatting could do far more than just substitute values&mdash;and do it all at compile time? This deep dive explores how modern C++ features like reflection unlock powerful new possibilities for parsing, analyzing, and transforming format strings before your program even runs.</p>
<blockquote>
	<h3>
		<a href="https://brevzin.github.io/c++/2026/03/02/power-of-substitute/">Behold the power of meta::substitute</a></h3>
	<p>
		by Barry Revzin</p>
</blockquote>
<p>
	From the article:</p>
<blockquote>
	<p>
		Over winter break, I started working on proposal for&nbsp;<a href="https://wg21.link/p3951">string interpolation</a>. It was a lot of fun to work through implementing, basically an hour a day during my daughter&rsquo;s nap time. The design itself is motivated by wanting to have a lot more functionality other than just formatting &mdash; and one of the examples in the paper was implementing an algorithm that does highlighting of the interpolations, such that:</p>
	<p>
		<img alt="revzin-codeeg.png" src="https://isocpp.org/files/img/revzin-codeeg.png" style="margin: 10px; float: left;" /></p>
	<p>
		&nbsp;</p>
	<p>
		&nbsp;</p>
	<p>
		&nbsp;</p>
	<p>
		would print this:</p>
	<blockquote>
		<p>
			x=<strong>5</strong>&nbsp;and y=<strong>*10*</strong>&nbsp;and z=<strong>hello</strong>!</p>
	</blockquote>
	<p>
		without doing any additional parsing work. I got the example from Vittorio Romeo&rsquo;s&nbsp;<a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1819r0.html#automated-coloring">original paper</a>.</p>
	<p>
		Now, when I wrote the paper, I considered this to be a simple example demonstrating something that was possible with the design I was proposing that was&nbsp;<em>not</em>&nbsp;possible with the&nbsp;<a href="https://wg21.link/p3412">other design</a>. I thought that because obviously you need the format string as a compile-time constant in order to parse it at compile time to get the information that you need.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Articles & Books,]]></dc:subject>
      <pubDate>Wed, 22 Apr 2026 19:50:46 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>2026 Annual C++ Developer Survey &amp;quot;Lite&amp;quot;</title>
      <link>https://isocpp.org//blog/2026/04/2026-annual-cpp-developer-survey-lite1</link>
      <guid>https://isocpp.org//blog/2026/04/2026-annual-cpp-developer-survey-lite1</guid>
      <description><![CDATA[<p>
	<img alt="cpp_logo.png" src="https://isocpp.org/files/img/cpp_logo.png" style="width: 250px; margin: 10px; float: right; height: 281px;" /></p>
<p>
	The annual global C++ developer survey is now open:</p>
<blockquote>
	<h2>
		<a href="https://standardcpp.typeform.com/2026-dev-survey">2026 Annual C++ Developer Survey "Lite"</a></h2>
</blockquote>
<p>
	Please share your feedback in this annual <strong>10-minute</strong> survey to help inform C++ standardization and C++ tool vendors. This is the biggest opportunity we all have each year to make our voices heard and help improve our industry and community!</p>
<p>
	A summary of the results, including aggregated highlights of common answers in the write-in responses, will be posted publicly here on isocpp.org and shared with the C++ standardization committee participants and C++ tool vendors to help inform C++ evolution and tooling.</p>
<p>
	The survey closes in one week.</p>
<p>
	<em><strong>Thank you </strong></em>for participating and helping to inform our committee and community.</p>]]></description>
      <dc:subject><![CDATA[News, Product News, Standardization,]]></dc:subject>
      <pubDate>Wed, 22 Apr 2026 00:59:01 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>CppCon 2025 C++: Some Assembly Required &#45;&#45; Matt Godbolt</title>
      <link>https://isocpp.org//blog/2026/04/cppcon-2025-cpp-some-assembly-required-matt-godbolt</link>
      <guid>https://isocpp.org//blog/2026/04/cppcon-2025-cpp-some-assembly-required-matt-godbolt</guid>
      <description><![CDATA[<p>
	<img alt="assembly-godbolt.png" src="https://isocpp.org/files/img/assembly-godbolt.png" style="width: 400px; margin: 10px; float: right;" />Registration is now open for CppCon 2026!&nbsp;The conference starts on September 12 and will be held&nbsp;<a href="https://cppcon.org/">in person in Aurora, CO</a>. To whet your appetite for this year&rsquo;s conference, we&rsquo;re posting videos of some of the top-rated talks from last year&#39;s conference. Here&rsquo;s another CppCon talk video we hope you will enjoy &ndash; and why not&nbsp;<a href="https://cppcon.org/registration/"><strong>register today</strong></a><strong>&nbsp;for CppCon 2026!</strong></p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=zoYT7R94S3c">C++: Some Assembly Required</a></h3>
	<p>
		by Matt Godbolt</p>
</blockquote>
<p>
	Summary of the talk:</p>
<blockquote>
	<p>
		Join Matt in exploring how the C++ ecosystem has evolved through the interplay of intentional design and emergent collaboration. Standards committees craft language features and compiler teams implement them, but something amazing happens in the spaces between: tools appear, communities form, and solutions emerge that nobody quite planned for. What started as individual developers solving their own problems has grown into an interconnected ecosystem that shapes how we all write C++.</p>
	<p>
		From documentation to testing, from build systems to package managers, we&#39;ll examine how the C++ community has assembled itself around shared pain points and accidental standards. Using examples and perhaps too many rainforest metaphors, this talk celebrates not just the language we&#39;ve built, but the organic ecosystem that&#39;s grown up around it. Come discover why C++&#39;s greatest strength might be that it&#39;s always required some assembly.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand,]]></dc:subject>
      <pubDate>Tue, 21 Apr 2026 21:13:30 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>CppCon 2025 How C++ Finally Beats Rust at JSON Serialization &#45;&#45; Lemire &amp;amp; Thiesen</title>
      <link>https://isocpp.org//blog/2026/04/cppcon-2025-how-cpp-finally-beats-rust-at-json-serialization-lemire-thiesen</link>
      <guid>https://isocpp.org//blog/2026/04/cppcon-2025-how-cpp-finally-beats-rust-at-json-serialization-lemire-thiesen</guid>
      <description><![CDATA[<p>
	<img alt="beatsrust-lemire.png" src="https://isocpp.org/files/img/beatsrust-lemire.png" style="width: 400px; margin: 10px; float: right;" />Registration is now open for CppCon 2026!&nbsp;The conference starts on September 12 and will be held&nbsp;<a href="https://cppcon.org/">in person in Aurora, CO</a>. To whet your appetite for this year&rsquo;s conference, we&rsquo;re posting videos of some of the top-rated talks from last year&#39;s conference. Here&rsquo;s another CppCon talk video we hope you will enjoy &ndash; and why not&nbsp;<a href="https://cppcon.org/registration/"><strong>register today</strong></a><strong>&nbsp;for CppCon 2026!</strong></p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=Mcgk3CxHYMs">How C++ Finally Beats Rust at JSON Serialization</a></h3>
	<p>
		by Daniel Lemire &amp; Francisco Geiman Thiesen</p>
</blockquote>
<p>
	Summary of the talk:</p>
<blockquote>
	<p>
		JSON, or JavaScript Object Notation, has become a cornerstone for storing and exchanging data. Its appeal lies in its simplicity&mdash;human-readable text that elegantly captures structured data through attribute-value pairs and arrays: {"age": 5, "name": "Daniel", "toys": ["wooden dog", "little car"]}. JSON is intuitive yet powerful. But ingesting and producing JSON can turn into a performance choke point. In C++, it can be a tedious, error-prone task. Programmers wrestle with unexpected content, manually mapping data to and from native structures, all while striving for speed and safety.<br />
		<br />
		With languages like Java, C#, Zig, Rust, or Python, JSON serialization and deserialization typically requires far less work. In particular, Rust&#39;s serde library blends convenience with high speed. We wish for a C++ library to automatically handle JSON production and consumption, seamlessly tied to native data structures. It is not merely to simplify life for developers; it is also about crafting code that is both fast and solid, generated at compile time by a battle-tested library.<br />
		<br />
		Thankfully, C++ might soon be getting reflective metaprogramming (&nbsp; PR2996&nbsp; ). Leveraging the&nbsp; experimental Bloomberg LLVM fork&nbsp; with reflective metaprogramming, we have built a full-fledged implementation&mdash;complete with tests, benchmarks, and documentation. Our goal is to have production-ready code the moment mainstream compilers catch up. The results speak for themselves: we are parsing JSON directly into C++ structures at gigabytes per second, outpacing even mature heavyweights like Rust&#39;s serde. Better yet, the conversion between C++ data structures and JSON is fully automated, thanks to metaprogramming. It has the potential to be a leap forward for C++ in the data-driven age. Unfortunately, there are still problems and limitations: we present them and provide some solutions.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand, Standardization,]]></dc:subject>
      <pubDate>Fri, 17 Apr 2026 19:34:43 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>Devirtualization and Static Polymorphism &#45;&#45; David Álvarez Rosa</title>
      <link>https://isocpp.org//blog/2026/04/devirtualization-and-static-polymorphism-david-alvarez-rosa</link>
      <guid>https://isocpp.org//blog/2026/04/devirtualization-and-static-polymorphism-david-alvarez-rosa</guid>
      <description><![CDATA[<p>
	<img alt="rosa-devirtualization.png" src="https://isocpp.org/files/img/rosa-devirtualization.png" style="width: 400px; margin: 10px; float: right;" />Ever wondered why your clean, object-oriented design sometimes slows things down? This piece breaks down how virtual dispatch impacts performance&mdash;and how techniques like devirtualization and static polymorphism can eliminate that overhead entirely.</p>
<blockquote>
	<h3>
		<a href="https://david.alvarezrosa.com/posts/devirtualization-and-static-polymorphism/">Devirtualization and Static Polymorphism</a></h3>
	<p>
		by David &Aacute;lvarez Rosa</p>
</blockquote>
<p>
	From the article:</p>
<blockquote>
	<p>
		Ever wondered why your &ldquo;clean&rdquo; polymorphic design underperforms in benchmarks? Virtual dispatch enables polymorphism, but it comes with hidden overhead: pointer indirection, larger object layouts, and fewer inlining opportunities.</p>
	<p>
		Compilers do their best to devirtualize these calls, but it isn&rsquo;t always possible. On latency-sensitive paths, it&rsquo;s beneficial to manually replace dynamic dispatch with static polymorphism, so calls are resolved at compile time and the abstraction has effectively zero runtime cost.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Articles & Books,]]></dc:subject>
      <pubDate>Thu, 16 Apr 2026 19:42:23 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>CppCon 2025 Why Every C++ Game Developer Should Learn SDL 3 Now &#45;&#45; Mike Shah</title>
      <link>https://isocpp.org//blog/2026/04/cppcon-2025-why-every-cpp-game-developer-should-learn-sdl-3-now-mike-shah</link>
      <guid>https://isocpp.org//blog/2026/04/cppcon-2025-why-every-cpp-game-developer-should-learn-sdl-3-now-mike-shah</guid>
      <description><![CDATA[<p>
	<img alt="gameindustry-shah.png" src="https://isocpp.org/files/img/gameindustry-shah.png" style="width: 400px; margin: 10px; float: right;" />Registration is now open for CppCon 2026!&nbsp;The conference starts on September 12 and will be held&nbsp;<a href="https://cppcon.org/">in person in Aurora, CO</a>. To whet your appetite for this year&rsquo;s conference, we&rsquo;re posting videos of some of the top-rated talks from last year&#39;s conference. Here&rsquo;s another CppCon talk video we hope you will enjoy &ndash; and why not&nbsp;<a href="https://cppcon.org/registration/"><strong>register today</strong></a><strong>&nbsp;for CppCon 2026!</strong></p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=tV1giXd0-Us">Why Every C++ Game Developer Should Learn SDL 3 Now</a></h3>
	<p>
		by Mike Shah</p>
</blockquote>
<p>
	Summary of the talk:</p>
<blockquote>
	<p>
		The C++ programming language does not have a standard graphics library, However, there exists many popular graphics frameworks for cross-platform graphics. In this talk, I will provide an introduction to the Simple Directmedia Layer (SDL) library, which has at the start of 2025 released version 3. This library for several decades has been a standard in the games and graphics industry. Throughout this talk, I will show how to get started with the library, some more advanced examples (including compiling graphics applications to web), and then talk about what a standard graphics library could look like in C++, or if it is even necessary. I will also talk about the 3D GPU library in SDL3. Attendees will leave this talk ready to build multimedia / game applications and with an understanding on if SDL3 is the right tool for them.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand, Events,]]></dc:subject>
      <pubDate>Wed, 15 Apr 2026 19:31:45 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>Announcement: cppreference.com update</title>
      <link>https://isocpp.org//blog/2026/04/announcement-cppreference.com-update</link>
      <guid>https://isocpp.org//blog/2026/04/announcement-cppreference.com-update</guid>
      <description><![CDATA[<p>
	<a href="https://cppreference.com/">cppreference.com</a>&nbsp;is the premier public reference site for documenting and tracking the C++ language. It is run by Nate Kohl, with the help of many volunteer wiki editors. I want to thank Nate and all the volunteers for making it such an enduringly valuable resource.</p>
<p>
	Like all software, the site requires maintenance. It has been in read-only mode for some time while Nate has been leading the work to migrate it to MediaWiki. Because the <a href="https://isocpp.org/about">Standard C++ Foundation</a>&#39;s web wizard, James Riordon, recently migrated the ISO C++ committee wiki (now also maintained by the Foundation) to MediaWiki, I asked Nate whether the Foundation and James could help. Nate accepted our offer, and thanks to Nate and James&#39;s work, cppreference is now almost ready to return to normal read-write operation.</p>
<p>
	To help keep the site running smoothly going forward, the Foundation plans to continue providing hosting and administrative support for the site&#39;s infrastructure, including future MediaWiki and related updates. That should let Nate stay focused on leading the site&#39;s content and coordinating the volunteer editors who keep cppreference current.</p>
<p>
	We expect the refreshed site, including support for all languages, to return to read-write mode later this month. Fingers crossed. My thanks again to Nate, James, and everyone who has helped make cppreference the indispensable reference it is today, and to everyone for their patience while this necessary maintenance has been underway.</p>
<p>
	Cheers,</p>
<p>
	Herb</p>
<p>
	&nbsp;</p>]]></description>
      <dc:subject><![CDATA[News,]]></dc:subject>
      <pubDate>Tue, 14 Apr 2026 22:36:46 +0000</pubDate>
      <dc:creator>Herb Sutter</dc:creator>
    </item>

    <item>
      <title>CppCon 2025 Implementing Your Own C++ Atomics &#45;&#45; Ben Saks</title>
      <link>https://isocpp.org//blog/2026/04/cppcon-2025-implementing-your-own-cpp-atomics-ben-saks</link>
      <guid>https://isocpp.org//blog/2026/04/cppcon-2025-implementing-your-own-cpp-atomics-ben-saks</guid>
      <description><![CDATA[<p>
	<img alt="atomics-saks.png" src="https://isocpp.org/files/img/atomics-saks.png" style="width: 400px; margin: 10px; float: right;" />Registration is now open for CppCon 2026!&nbsp;The conference starts on September 12 and will be held&nbsp;<a href="https://cppcon.org/">in person in Aurora, CO</a>. To whet your appetite for this year&rsquo;s conference, we&rsquo;re posting videos of some of the top-rated talks from last year&#39;s conference. Here&rsquo;s another CppCon talk video we hope you will enjoy &ndash; and why not&nbsp;<a href="https://cppcon.org/registration/"><strong>register today</strong></a><strong>&nbsp;for CppCon 2026!</strong></p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=LtwQ7xZZIF4">Implementing Your Own C++ Atomics</a></h3>
	<p>
		by Ben Saks</p>
</blockquote>
<p>
	Summary of the talk:</p>
<blockquote>
	<p>
		Atomic objects are extremely useful for concurrent programming. Unfortunately, some embedded toolchains like AVR-GCC omit portions of the C++ Standard Library, including headers like &#65308;atomic&#65310; .This makes it much harder to program concurrent software on these platforms, since many tutorials and open-source libraries assume Standard Library support. For example, these talks from past CppCons present lock-free data structures and algorithms that rely strongly on lock-free instantiations of std::atomic&#65308;T&#65310;:<br />
		<br />
		Single Producer Single Consumer Lock-free FIFO From the Ground Up &ndash; Charles Frasch &ndash; CppCon 2023<br />
		Introduction to Wait-free Algorithms in C++ Programming &ndash; Daniel Anderson &ndash; CppCon 2024<br />
		User API &amp; C++ Implementation of a Multi Producer, Multi Consumer, Lock Free, Atomic Queue &ndash; Erez Strauss &ndash; CppCon 2024<br />
		<br />
		This session will show you how to implement your own atomic types in the absence of library support. These atomic types can greatly expand the number of tutorials and open-source libraries available for you to use. A clear understanding of how atomic types are implemented will also help you use objects of those types more effectively on platforms that do provide native support.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand,]]></dc:subject>
      <pubDate>Tue, 14 Apr 2026 16:24:09 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>Power of C++26 Reflection: Strong (opaque) type definitions &#45;&#45;  r/cpp</title>
      <link>https://isocpp.org//blog/2026/04/power-of-cpp26-reflection-strong-opaque-type-definitions-r-cpp</link>
      <guid>https://isocpp.org//blog/2026/04/power-of-cpp26-reflection-strong-opaque-type-definitions-r-cpp</guid>
      <description><![CDATA[<p>
	Inspired by a similar previous thread showcasing cool uses for C++26 reflection.</p>
<blockquote>
	<h3>
		<a href="https://www.reddit.com/r/cpp/comments/1rgo4s9/power_of_c26_reflection_strong_opaque_type/">Power of C++26 Reflection: Strong (opaque) type definitions&nbsp;</a></h3>
</blockquote>
<p>
	From the article:</p>
<blockquote>
	<p>
		With reflection, you can easily create "opaque" type definitions, i.e "strong types". It works by having an inner value stored, and wrapping over all public member functions.</p>
	<p>
		Note: I am using queue_injection { ... } with the EDG experimental reflection, which afaik wasn&#39;t actually integrated into the C++26 standard, but without it you would simply need two build stages for codegen. This is also just a proof of concept, some features aren&#39;t fully developed (e.g aggregate initialization)</p>
	<pre>
struct Item { /* ... */ }; // name, price as methods&#10;&#10;struct FoodItem;&#10;struct BookItem;&#10;struct MovieItem;&#10;&#10;consteval { &#10;    make_strong_typedef(^^FoodItem, ^^Item); &#10;    make_strong_typedef(^^BookItem, ^^Item); &#10;    make_strong_typedef(^^MovieItem, ^^Item); &#10;}&#10;&#10;// Fully distinct types&#10;void display(FoodItem &amp;i) {&#10;    std::cout &lt;&lt; "Food: " &lt;&lt; i.name() &lt;&lt; ", " &lt;&lt; i.price() &lt;&lt; std::endl;&#10;}&#10;void display(BookItem &amp;i) {&#10;    std::cout &lt;&lt; "Book: " &lt;&lt; i.name() &lt;&lt; ", " &lt;&lt; i.price() &lt;&lt; std::endl;&#10;}&#10;&#10;int main() {&#10;    FoodItem fi("apple", 10); // works if Item constructor isn&#39;t marked explicit&#10;    FoodItem fi_conversion(Item{"chocolate", 5}); // otherwise&#10;    BookItem bi("the art of war", 20);&#10;    MovieItem mi("interstellar", 25);&#10;&#10;    display(fi);&#10;    display(bi);&#10;    // display(Item{"hello", 1}); // incorrect, missing display(Item&amp;) function&#10;    // display(mi); // incorrect, missing display(MovieItem&amp;) function&#10;}</pre>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Articles & Books,]]></dc:subject>
      <pubDate>Thu, 09 Apr 2026 21:36:20 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>CppCon 2025 Back to Basics: Custom Allocators Explained &#45; From Basics to Advanced &#45;&#45; Kevin Carpenter</title>
      <link>https://isocpp.org//blog/2026/04/cppcon-2025-back-to-basics-custom-allocators-explained-from-basics-to-advan</link>
      <guid>https://isocpp.org//blog/2026/04/cppcon-2025-back-to-basics-custom-allocators-explained-from-basics-to-advan</guid>
      <description><![CDATA[<p>
	<img alt="Custom_Allocators_carpenter.png" src="https://isocpp.org/files/img/Custom_Allocators_carpenter.png" style="width: 400px; margin: 10px; float: right;" />Registration is now open for CppCon 2026!&nbsp;The conference starts on September 12 and will be held&nbsp;<a href="https://cppcon.org/">in person in Aurora, CO</a>. To whet your appetite for this year&rsquo;s conference, we&rsquo;re posting videos of some of the top-rated talks from last year&#39;s conference. Here&rsquo;s another CppCon talk video we hope you will enjoy &ndash; and why not&nbsp;<a href="https://cppcon.org/registration/"><strong>register today</strong></a><strong>&nbsp;for CppCon 2026!</strong></p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=RpD-0oqGEzE">Back to Basics: Custom Allocators Explained - From Basics to Advanced</a></h3>
	<p>
		by Kevin Carpenter</p>
</blockquote>
<p>
	Summary of the talk:</p>
<blockquote>
	<p>
		Effective memory management is crucial for building efficient and reliable C++ applications. Custom memory allocators provide a powerful tool for optimizing memory usage, reducing fragmentation, and improving performance. This talk will explore the intricacies of memory allocation in C++, from the basics of dynamic memory management to the implementation of custom allocators. Attendees will gain insights into the standard allocator model, techniques for designing custom allocators, and practical examples of their use in real-world applications.<br />
		<br />
		Join us to unlock the full potential of memory management in your C++ projects.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand,]]></dc:subject>
      <pubDate>Tue, 07 Apr 2026 17:17:59 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>CppCon 2025 Cache Me Maybe: The Performance Secret Every C++ Developer Needs &#45;&#45; Michelle D&apos;Souza</title>
      <link>https://isocpp.org//blog/2026/04/cppcon-2025-cache-me-maybe-the-performance-secret-every-cpp-developer-needs</link>
      <guid>https://isocpp.org//blog/2026/04/cppcon-2025-cache-me-maybe-the-performance-secret-every-cpp-developer-needs</guid>
      <description><![CDATA[<p>
	<img alt="Cache_Me_Maybe_dsouza.png" src="https://isocpp.org/files/img/Cache_Me_Maybe_dsouza.png" style="width: 400px; margin: 10px; float: right;" />Registration is now open for CppCon 2026!&nbsp;The conference starts on September 12 and will be held&nbsp;<a href="https://cppcon.org/">in person in Aurora, CO</a>. To whet your appetite for this year&rsquo;s conference, we&rsquo;re posting videos of some of the top-rated talks from last year&#39;s conference. Here&rsquo;s another CppCon talk video we hope you will enjoy &ndash; and why not&nbsp;<a href="https://cppcon.org/registration/"><strong>register today</strong></a><strong>&nbsp;for CppCon 2026!</strong></p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=VhKq0nzPTh0">Cache Me Maybe: The Performance Secret Every C++ Developer Needs</a></h3>
	<p>
		by Michelle D&#39;Souza</p>
</blockquote>
<p>
	Summary of the talk:</p>
<blockquote>
	<p>
		Calling all code detectives! Grab your trench coats and magnifying glasses ... it&#39;s time to crack the case of sluggish C++ performance. In this thrilling investigation, we&#39;ll uncover the hidden world of your computer&#39;s built-in cache and how to harness it to turbocharge your code.<br />
		<br />
		We&#39;ll comb through the fundamentals of caches like seasoned sleuths, uncover clues on optimizing access patterns, and interrogate suspects like false sharing and cache unfriendly data structures. We will also examine benchmark evidence based on real-world production code, exposing how each technique delivers the goods.<br />
		<br />
		By the end of this mission, you&#39;ll be armed with a detective&#39;s toolkit of cache savvy strategies, ready to solve cross-platform performance mysteries and bring blazing fast code to justice. Cache you at this session, maybe!</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand,]]></dc:subject>
      <pubDate>Fri, 03 Apr 2026 17:15:42 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>std::vector — Four Mechanisms Behind Every push_back() &#45;&#45; Gracjan Olbinski</title>
      <link>https://isocpp.org//blog/2026/04/stdvector-four-mechanisms-behind-every-push_back-gracjan-olbinski</link>
      <guid>https://isocpp.org//blog/2026/04/stdvector-four-mechanisms-behind-every-push_back-gracjan-olbinski</guid>
      <description><![CDATA[<p>
	A walkthrough of four mechanisms working behind every push_back() call &mdash; exponential growth and amortized O(1), the growth factor&#39;s effect on memory reuse, cache performance from contiguity, and the silent noexcept trap in move semantics during reallocation.</p>
<blockquote>
	<h3>
		<a href="https://golbinski.org/blog/std-vector-push-back/">std::vector &mdash; Four Mechanisms Behind Every push_back()</a></h3>
	<p>
		by&nbsp;Gracjan Olbinski</p>
</blockquote>
<p>
	From the article:</p>
<blockquote>
	<p>
		"You call push_back() a thousand times. The vector reallocates about ten. Behind that simple interface, four mechanisms are working together &mdash; each one invisible during normal use, each one shaping your performance in ways that push_back() will never tell you about."</p>
</blockquote>
<p>
	&nbsp;</p>]]></description>
      <dc:subject><![CDATA[News, Articles & Books,]]></dc:subject>
      <pubDate>Thu, 02 Apr 2026 23:48:28 +0000</pubDate>
      <dc:creator>Gracjan Olbinski</dc:creator>
    </item>

    <item>
      <title>CppCon 25 Matrix Multiplication Deep Dive || Cache Blocking, SIMD &amp;amp; Parallelization &#45;&#45; Aliaksei Sala</title>
      <link>https://isocpp.org//blog/2026/03/cppcon-25-matrix-multiplication-deep-dive-cache-blocking-simd-parallelizati</link>
      <guid>https://isocpp.org//blog/2026/03/cppcon-25-matrix-multiplication-deep-dive-cache-blocking-simd-parallelizati</guid>
      <description><![CDATA[<p>
	<img alt="matrix_multiplication_Aliaksei_Sala.png" src="https://isocpp.org/files/img/matrix_multiplication_Aliaksei_Sala.png" style="width: 400px; margin: 10px; float: right;" />Registration is now open for CppCon 2026!&nbsp;The conference starts on September 12 and will be held&nbsp;<a href="https://cppcon.org/">in person in Aurora, CO</a>. To whet your appetite for this year&rsquo;s conference, we&rsquo;re posting videos of some of the top-rated talks from last year&#39;s conference. Here&rsquo;s another CppCon talk video we hope you will enjoy &ndash; and why not&nbsp;<a href="https://cppcon.org/registration/"><strong>register today</strong></a><strong>&nbsp;for CppCon 2026!</strong></p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=GHctcSBd6Z4">Matrix Multiplication Deep Dive || Cache Blocking, SIMD &amp; Parallelization</a></h3>
	<p>
		by Aliaksei Sala</p>
</blockquote>
<p>
	Summary of the talk:</p>
<blockquote>
	<p>
		Matrix multiplication is a fundamental operation in scientific computing, game development, AI, and numerous high-performance applications. While its mathematical definition is simple, achieving optimal performance in C++ is far from trivial.<br />
		<br />
		In this talk, we will explore different optimization techniques for matrix multiplication, from naive implementations to highly tuned versions leveraging modern hardware features. We will cover key performance-enhancing strategies such as loop unrolling, cache blocking, SIMD vectorization, parallelization using threads and more. Through benchmarking and profiling, we will measure the real impact of these optimizations.<br />
		<br />
		By the end of this session, attendees will gain insights into two critical questions:<br />
		<br />
		How hard is it to implement an optimized matrix multiplication in C++? How effective is C++ for achieving peak performance in this task?<br />
		<br />
		This talk is suitable for developers interested in performance optimization, computational efficiency, and modern C++ techniques for numerical computing.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand,]]></dc:subject>
      <pubDate>Tue, 31 Mar 2026 17:11:56 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>The hidden compile&#45;time cost of C++26 reflection &#45;&#45; Vittorio Romeo</title>
      <link>https://isocpp.org//blog/2026/03/the-hidden-compile-time-cost-of-cpp26-reflection-vittorio-romeo</link>
      <guid>https://isocpp.org//blog/2026/03/the-hidden-compile-time-cost-of-cpp26-reflection-vittorio-romeo</guid>
      <description><![CDATA[<p>
	How much does C++26 Reflection actually cost your build?</p>
<p>
	In this article, we&#39;ll perform some early compilation time benchmarks of one of the most awaited C++26 features.</p>
<blockquote>
	<h3>
		<a href="https://vittorioromeo.com/index/blog/refl_compiletime.html"><strong>The hidden compile-time cost of C++26 reflection</strong></a></h3>
	<p>
		by Vittorio Romeo</p>
</blockquote>
<p>
	From the article:</p>
<blockquote>
	<p>
		Fast compilation times are extremely valuable to keep iteration times low, productivity and motivation high, and to quickly see the impact of your changes.</p>
	<p>
		I would love to see a world where C++26 reflection is as close as possible to a lightweight language feature [...]</p>
	<p>
		So, I decided to take some early measurements.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Articles & Books,]]></dc:subject>
      <pubDate>Tue, 31 Mar 2026 01:19:29 +0000</pubDate>
      <dc:creator>Vittorio Romeo</dc:creator>
    </item>

    <item>
      <title>Stop Choosing: Get C++ Performance in Python Algos with C++26 &#45;&#45; Richard Hickling</title>
      <link>https://isocpp.org//blog/2026/03/stop-choosing-get-cpp-performance-in-python-algos-with-c26-richard-hickling</link>
      <guid>https://isocpp.org//blog/2026/03/stop-choosing-get-cpp-performance-in-python-algos-with-c26-richard-hickling</guid>
      <description><![CDATA[<p>
	<img alt="merton-bot.png" src="https://isocpp.org/files/img/merton-bot.png" style="width: 400px; margin: 10px; float: right;" />In algorithmic trading, the Python-vs-C++ debate is usually framed as flexibility versus speed &mdash; rapid strategy development on one side, ultra-low-latency execution on the other. But with C++26 reflection, that trade-off starts to disappear, making it possible to generate Python bindings automatically while keeping the core logic running at native C++ performance.</p>
<blockquote>
	<h3>
		<a href="https://profitview.net/blog/cpp26-reflection-python-algo-trading">Stop Choosing: Get C++ Performance in Python Algos with C++26</a></h3>
	<p>
		by Richard Hickling</p>
</blockquote>
<p>
	From the article:</p>
<blockquote>
	<p>
		The &ldquo;religious war&rdquo; between Python and C++ in algorithmic trading usually boils down to a single trade-off:&nbsp;Python&nbsp;is faster for getting ideas to market, while&nbsp;C++&nbsp;is faster for getting orders into the book.</p>
	<p>
		But why choose? With the advent of&nbsp;C++26 Reflection, you can now have the flexibility of a Python-based strategy without the performance penalty of slow loops.</p>
	<p id="bring-in-c-rapidly-how-reflection-works">
		<strong>Bring in C++ Rapidly: How Reflection Works</strong></p>
	<p>
		The biggest hurdle in hybrid trading systems has always been the &ldquo;bridge.&rdquo; Traditionally, if you wrote a complex pricer in C++, you had to manually write &ldquo;boilerplate&rdquo; code to tell Python how to talk to it. If you added a new function, you had to update the bridge. It was tedious and error-prone.</p>
	<p>
		Reflection&nbsp;changes the game by allowing the code to &ldquo;look in the mirror&rdquo;. Instead of you manually describing your C++ functions to Python, the compiler does it for you. It programmatically inspects your classes and generates the bindings automatically.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Articles & Books,]]></dc:subject>
      <pubDate>Fri, 27 Mar 2026 19:11:17 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>CppCon 2025 Practical Reflection With C++26 &#45;&#45; Barry Revzin</title>
      <link>https://isocpp.org//blog/2026/03/cppcon-2025-practical-reflection-with-cpp26-barry-revzin</link>
      <guid>https://isocpp.org//blog/2026/03/cppcon-2025-practical-reflection-with-cpp26-barry-revzin</guid>
      <description><![CDATA[<p>
	<img alt="practical_reflection_revzin.png" src="https://isocpp.org/files/img/practical_reflection_revzin.png" style="width: 400px; margin: 10px; float: right;" />Registration is now open for CppCon 2026!&nbsp;The conference starts on September 12 and will be held&nbsp;<a href="https://cppcon.org/">in person in Aurora, CO</a>. To whet your appetite for this year&rsquo;s conference, we&rsquo;re posting videos of some of the top-rated talks from last year&#39;s conference. Here&rsquo;s another CppCon talk video we hope you will enjoy &ndash; and why not&nbsp;<a href="https://cppcon.org/registration/"><strong>register today</strong></a><strong>&nbsp;for CppCon 2026!</strong></p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=ZX_z6wzEOG0">Practical Reflection With C++26</a></h3>
	<p>
		by Barry Revzin</p>
</blockquote>
<p>
	Summary of the talk:</p>
<blockquote>
	<p>
		With the adoption of Reflection for C++26, the landscape of what is possible has shifted. This talk will focus on implementing Struct-of-Arrays for an arbitrary aggregate, but will also take some detours to cover some techniques that will prove useful for solving a wide range of problems.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand,]]></dc:subject>
      <pubDate>Thu, 26 Mar 2026 17:08:59 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>A Brief History of Bjarne Stroustrup, the Creator of C++ &#45;&#45; CultRepo</title>
      <link>https://isocpp.org//blog/2026/03/a-brief-history-of-bjarne-stroustrup-the-creator-of-cpp-cultrepo1</link>
      <guid>https://isocpp.org//blog/2026/03/a-brief-history-of-bjarne-stroustrup-the-creator-of-cpp-cultrepo1</guid>
      <description><![CDATA[<p>
	In this portrait, we meet Bjarne Stroustrup where we talk about his childhood, his accidental entry into computer science (what is "datologi" anyway?), and the ideas that shaped one of the most influential programming languages ever made -- among many, many other things... like how pronouncing his last name involves a potato.</p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=uDtvEsv730Y">A Brief History of Bjarne Stroustrup, the Creator of C++</a></h3>
	<p>
		by CultRepo</p>
</blockquote>
<p>
	Watch now:</p>
<blockquote>
	<p>
		&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/uDtvEsv730Y?si=QD_WmemwpsAfNsVI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen&gt;&lt;/iframe&gt;</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand, Training,]]></dc:subject>
      <pubDate>Wed, 25 Mar 2026 19:07:51 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>Announcing Meeting C++ 2026</title>
      <link>https://isocpp.org//blog/2026/03/announcing-meeting-cpp-2026</link>
      <guid>https://isocpp.org//blog/2026/03/announcing-meeting-cpp-2026</guid>
      <description><![CDATA[<p>
	This years Meeting C++ conference is special, as its the 15th conference in total that Meeting C++ has organized, and its also the 5th time the event is hybrid!</p>
<blockquote>
	<h2>
		<a href="https://meetingcpp.com/meetingcpp/news/items/Announcing-Meeting-Cpp-2026-.html">Announcing Meeting C++ 2026</a></h2>
	<p>
		by Jens Weller</p>
</blockquote>
<p>
	From the article:</p>
<blockquote>
	<p>
		We&#39;ll be meeting from the 26th - 28th November in Berlin! You have the unique chance to spend the 1st advent in Berlin with C++ and Christmas Markets open!</p>
	<p>
		With Mateusz Pusz and Kate Gregory I&#39;ve chosen two well known speakers for the keynotes this year. Mateusz is well known for his units library, which currently also is proposed for the standard. It is also an important contribution to making C++ more safe and secure, the big topic of last year. Then Kate Gregory will be visiting us in Berlin again, she is known for her ability to create great talks around technical and social aspects in our daily lives as devs. You might remember her from giving a keynote in 2017, or speaking about the aging programmer two years ago.</p>
	<p>
		For the 15th time Meeting C++ will organize a great event for 3 days filled with lots of content about C++, like last year the plan is to host 3 tracks in parallel in Berlin, with an optional 4th track. The 4th track will be unlocked either by sponsorships or ticket sales. You can be a part of this great C++ event by attending onsite and online. There is already great news for onsite attendees: Hudson River Trading is again this years t-shirt sponsor, a great and unique Meeting C++ 2026 t-shirt is an exclusive perk for onsite attendees!</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Events,]]></dc:subject>
      <pubDate>Wed, 25 Mar 2026 17:02:19 +0000</pubDate>
      <dc:creator>Meeting C++</dc:creator>
    </item>

    <item>
      <title>CppCon 2025 Threads vs Coroutines: Why C++ Has Two Concurrency Models &#45;&#45; Conor Spilsbury</title>
      <link>https://isocpp.org//blog/2026/03/cppcon-2025-threads-vs-coroutines-why-cpp-has-two-concurrency-models-conor</link>
      <guid>https://isocpp.org//blog/2026/03/cppcon-2025-threads-vs-coroutines-why-cpp-has-two-concurrency-models-conor</guid>
      <description><![CDATA[<p>
	<img alt="Threads_vs_coroutines_Conor_Spilsbury.png" src="https://isocpp.org/files/img/Threads_vs_coroutines_Conor_Spilsbury.png" style="width: 400px; margin: 10px; float: right;" />Registration is now open for CppCon 2026!&nbsp;The conference starts on September 12 and will be held&nbsp;<a href="https://cppcon.org/">in person in Aurora, CO</a>. To whet your appetite for this year&rsquo;s conference, we&rsquo;re posting videos of some of the top-rated talks from last year&#39;s conference. Here&rsquo;s another CppCon talk video we hope you will enjoy &ndash; and why not&nbsp;<a href="https://cppcon.org/registration/"><strong>register today</strong></a><strong>&nbsp;for CppCon 2026!</strong></p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=txffplpsSzg">Threads vs Coroutines: Why C++ Has Two Concurrency Models</a></h3>
	<p>
		by Conor Spilsbury</p>
</blockquote>
<p>
	Summary of the talk:</p>
<blockquote>
	<p>
		The C++11 standard introduced a powerful set of tools for concurrency such as threads, mutexes, condition variables, and futures. More recently, C++20 introduced another powerful but fundamentally different concurrency abstraction in the form of coroutines. But coroutines are not just an evolution or a replacement for threads. Instead, they each solve different problems in different ways. Choosing the right tool for the job requires understanding how each works under the hood and where they shine. This talk will help build that intuition by looking at how each interacts with the operating system and hardware which will help make better decisions when choosing which to use.<br />
		<br />
		We&#39;ll explore how threads and synchronization primitives work at the operating-system and hardware level, from thread creation and scheduling to where context switching and synchronization introduce performance costs. We&rsquo;ll then contrast this to the coroutine model introduced in C++20 which takes a fundamentally different approach by using a cooperative model based on the suspension and resumption of work.<br />
		<br />
		Given this understanding, we&rsquo;ll finish by applying this intuition to a set of real-world scenarios to identify whether threads or coroutines are a better fit for the problem at hand.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand,]]></dc:subject>
      <pubDate>Mon, 23 Mar 2026 17:05:00 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>C++26: std::is_within_lifetime &#45;&#45; Sandor Dargo</title>
      <link>https://isocpp.org//blog/2026/03/cpp26-stdis-within-lifetime-sandor-dargo</link>
      <guid>https://isocpp.org//blog/2026/03/cpp26-stdis-within-lifetime-sandor-dargo</guid>
      <description><![CDATA[<p>
	<img alt="SANDOR_DARGO_ROUND.JPG" src="https://isocpp.org/files/img/SANDOR_DARGO_ROUND.JPG" style="width: 200px; margin: 10px; float: right; height: 204px;" />When I first came across <code data-end="50" data-start="25">std::is_within_lifetime</code>, I expected another small type-traits utility &mdash; not a feature tied to checking whether a union alternative is active. But once you look closer, this seemingly narrow addition turns out to solve a surprisingly fundamental problem in constant evaluation.</p>
<blockquote>
	<h3>
		<a href="https://www.sandordargo.com/blog/2026/02/18/cpp26-std_is_within_lifetime">C++26: std::is_within_lifetime</a></h3>
	<p>
		by Sandor Dargo</p>
</blockquote>
<p>
	From the article:</p>
<blockquote>
	<p>
		When I was looking for the next topic for my posts, my eyes stopped on&nbsp;<code>std::is_within_lifetime</code>. Dealing with lifetime issues is a quite common source of bugs, after all. Then&nbsp;<a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2641r4.html">I clicked on the link</a>&nbsp;and I read&nbsp;<em>Checking if a union alternative is active</em>. I scratched my head. Is the link correct?</p>
	<p>
		It is &mdash; and it totally makes sense.</p>
	<p>
		Let&rsquo;s get into the details and first check what&nbsp;<a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2641r4.html">P2641R4</a>&nbsp;is about.</p>
	<p id="what-does-stdis_within_lifetime-do">
		<strong>What does&nbsp;<code>std::is_within_lifetime</code>&nbsp;do?</strong></p>
	<p>
		C++26 adds&nbsp;<code>bool std::is_within_lifetime(const T* p)</code>&nbsp;to the&nbsp;<code>&lt;type_traits&gt;</code>&nbsp;header. This function checks whether&nbsp;<code>p</code>&nbsp;points to an object that is currently within its lifetime during constant evaluation.</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Articles & Books,]]></dc:subject>
      <pubDate>Thu, 19 Mar 2026 19:03:59 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    <item>
      <title>CppCon 2025 More Speed &amp;amp; Simplicity: Practical Data&#45;Oriented Design in C++ &#45;&#45; Vittorio Romeo</title>
      <link>https://isocpp.org//blog/2026/03/cppcon-2025-more-speed-simplicity-practical-data-oriented-design-in-cpp-vit</link>
      <guid>https://isocpp.org//blog/2026/03/cppcon-2025-more-speed-simplicity-practical-data-oriented-design-in-cpp-vit</guid>
      <description><![CDATA[<p>
	<img alt="More_Speed_Vittorio_Romeo.png" src="https://isocpp.org/files/img/More_Speed_Vittorio_Romeo.png" style="width: 400px; margin: 10px; float: right;" />Registration is now open for CppCon 2026!&nbsp;The conference starts on September 12 and will be held&nbsp;<a href="https://cppcon.org/">in person in Aurora, CO</a>. To whet your appetite for this year&rsquo;s conference, we&rsquo;re posting videos of some of the top-rated talks from last year&#39;s conference. Here&rsquo;s another CppCon talk video we hope you will enjoy &ndash; and why not&nbsp;<a href="https://cppcon.org/registration/"><strong>register today</strong></a><strong>&nbsp;for CppCon 2026!</strong></p>
<blockquote>
	<h3>
		<a href="https://www.youtube.com/watch?v=SzjJfKHygaQ">CppCon 2025 More Speed &amp; Simplicity: Practical Data-Oriented Design in C++</a></h3>
	<p>
		by&nbsp;Vittorio Romeo</p>
</blockquote>
<p>
	Summary of the talk:</p>
<blockquote>
	<p>
		Data-Oriented Design (DOD) presents a different way of thinking: prioritizing data layout not only unlocks significant performance gains via cache efficiency but can also lead to surprising simplicity in the code that actually processes the data.</p>
	<p>
		This talk is a practical introduction for C++ developers familiar with OOP. Through a step-by-step refactoring of a conventional OOP design, we&rsquo;ll both cover how data access patterns influence speed and how a data-first approach can clarify intent.</p>
	<p>
		We&rsquo;ll measure the performance impact with benchmarks and analyze how the refactored code, particularly the data processing loops, can become more direct and conceptually simpler.</p>
	<p>
		Key techniques like Structure-of-Arrays (SoA) vs. Array-of-Structures (AoS) will be explained and benchmarked, considering their effects on both execution time and code clarity. We&rsquo;ll pragmatically weigh the strengths (performance, simpler data logic) and weaknesses of DOD, highlighting how it can complement, not just replace, OOP.</p>
	<p>
		We&rsquo;ll also demonstrate that DOD doesn&rsquo;t necessitate abandoning robust abstractions, showcasing C++ techniques for creating safe, expressive APIs that manage both complexity and performance.</p>
	<p>
		Let&rsquo;s learn how thinking &ldquo;data-first&rdquo; can make your C++ code faster and easier to reason about!</p>
</blockquote>]]></description>
      <dc:subject><![CDATA[News, Video & On-Demand,]]></dc:subject>
      <pubDate>Wed, 18 Mar 2026 16:59:04 +0000</pubDate>
      <dc:creator>Blog Staff</dc:creator>
    </item>

    
    </channel>
</rss>