<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on cor3ntin</title>
    <link>https://cor3ntin.github.io/posts/</link>
    <description>Recent content in Posts on cor3ntin</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 19 Apr 2025 18:41:37 +0200</lastBuildDate>
    <atom:link href="https://cor3ntin.github.io/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>A patchwork of Clang patches</title>
      <link>https://cor3ntin.github.io/posts/clang21/</link>
      <pubDate>Sat, 19 Apr 2025 18:41:37 +0200</pubDate>
      <guid>https://cor3ntin.github.io/posts/clang21/</guid>
      <description>Clang 20 was released in early March. But there is no rest for the wicked; Clang 21 is poised for a release in September.&#xA;While we are hard at work on C++23, C++26, and C23 features, I am also trying to find some time to work on miscellaneous bits and bobs.&#xA;I figured I should talk about some of them even if it&amp;rsquo;s all listed in the in-progress changelog, which we do our best to keep as accurate as possible.</description>
    </item>
    <item>
      <title>Nothingburgers in Hagenberg</title>
      <link>https://cor3ntin.github.io/posts/hagengberg/</link>
      <pubDate>Sun, 23 Feb 2025 10:38:23 +0100</pubDate>
      <guid>https://cor3ntin.github.io/posts/hagengberg/</guid>
      <description>The C++ committee held a meeting the week of the 10 February, in the lovely little village of Hagenberg. Far away from the civilization, we were hard at work on C++26. It was the last meeting to send new features to the wording groups. At the next meeting, C++26 will be complete and send to national bodies for comments.&#xA;As both my day job and my role as a Clang maintainer require me to pay very close attention to the language, I spent no more than a few minutes in library evolution.</description>
    </item>
    <item>
      <title>Legacy Safety: The Wrocław C&#43;&#43; Meeting</title>
      <link>https://cor3ntin.github.io/posts/profiles/</link>
      <pubDate>Fri, 29 Nov 2024 09:14:07 +0100</pubDate>
      <guid>https://cor3ntin.github.io/posts/profiles/</guid>
      <description>Someone was giving away stickers reading &amp;ldquo;Somebody Should Do Something&amp;rdquo; at the WG21 C++ Standardization meeting held in Wrocław last week, and it makes for a pretty good tagline for that meeting.&#xA;We are one meeting away from calling C++26 feature complete. The draft will be sent to National Bodies this summer. After that, we will have a couple of meetings to fix bugs and then wait for ISO to publish the official standard, which might take a year or two.</description>
    </item>
    <item>
      <title>If we must, let&#39;s talk about safety</title>
      <link>https://cor3ntin.github.io/posts/safety/</link>
      <pubDate>Sun, 11 Dec 2022 16:11:04 +0100</pubDate>
      <guid>https://cor3ntin.github.io/posts/safety/</guid>
      <description>How would you put a 69 meters long, 50 meters tall, 1210 tonnes ship in a museum? A boat so large and so great it sank 100 meters into her maiden voyage?&#xA;Well, you can&amp;rsquo;t. But, if you really wanted to build a monument to hubris, unsound engineering requirements, and design by kingship, you could design and build a museum around the Vasa. Entombed in concrete, the Vasa will never sail again</description>
    </item>
    <item>
      <title>Soursop and Ponies in Kona: A C&#43;&#43; Committee Trip Report</title>
      <link>https://cor3ntin.github.io/posts/kona22/</link>
      <pubDate>Fri, 25 Nov 2022 22:12:21 +0100</pubDate>
      <guid>https://cor3ntin.github.io/posts/kona22/</guid>
      <description>Earlier this month, the C++ committee meeting had its penultimate meeting of the C++23 cycle. It was also the first in-person meeting of the C++23 cycle. This means that C++23 was mostly designed over zoom. Which, sadly, explains in part why the language side of things has been rather stagnant these past couple of years.&#xA;But a lot of things happened in Kona. I forgot how intense these things were.</description>
    </item>
    <item>
      <title>Augeas</title>
      <link>https://cor3ntin.github.io/posts/augeas/</link>
      <pubDate>Sat, 16 Jul 2022 10:21:04 +0200</pubDate>
      <guid>https://cor3ntin.github.io/posts/augeas/</guid>
      <description>&lt;p style=&#34;display:none&#34;&gt;&#xA;C++ is not done yet.&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>What is the standard Library?</title>
      <link>https://cor3ntin.github.io/posts/std/</link>
      <pubDate>Sun, 20 Sep 2020 10:46:30 +0200</pubDate>
      <guid>https://cor3ntin.github.io/posts/std/</guid>
      <description>DISCLAIMER&#xA;The following represent my opinions, not that of the C++ committee (WG21), any of its members or any other person mentioned in this article.&#xA;I think the most fundamental work done by WG21 is trying to answer meta-questions about itself. What is C++, what is its essence, what should we focus on? How to evolve a language with a growing community, a growing committee? A language that is deployed on billions of devices, with an estimated 50 billions actively maintained lines of code.</description>
    </item>
    <item>
      <title>The problem with C</title>
      <link>https://cor3ntin.github.io/posts/c/</link>
      <pubDate>Sun, 30 Aug 2020 17:15:51 +0200</pubDate>
      <guid>https://cor3ntin.github.io/posts/c/</guid>
      <description>In the early 70s, C was created at Bell Labs as a byproduct of the development of UNIX. It quickly became one of the most popular programming languages. But it was not expressive enough for Bjarne Stroustrup. And so, in 1983, as a byproduct of his Ph.D. thesis, he extended C.&#xA;C with classes was born.&#xA;At the time, Bjarne Stroustrup understood that a programming language has many components, not only the language, its compiler, but also a linker and libraries.</description>
    </item>
    <item>
      <title>Standard library development made easy with C&#43;&#43;20</title>
      <link>https://cor3ntin.github.io/posts/tuple/</link>
      <pubDate>Sun, 23 Aug 2020 16:30:55 +0200</pubDate>
      <guid>https://cor3ntin.github.io/posts/tuple/</guid>
      <description>When he created Go as a knee-jerk Reaction to C++11, Rob Pike proclaimed Less is exponentially more. While it is anyone&amp;rsquo;s guess what that is supposed to mean, in this blog post we will see how C++20 is less verbose, yet more expressive than prior C++ versions.&#xA;I am a big fan of concepts-driven designs. The use of concepts leads to less coupled, more generic interfaces that work with more types.</description>
    </item>
    <item>
      <title>Non-terminal variadic template parameters</title>
      <link>https://cor3ntin.github.io/posts/variadic/</link>
      <pubDate>Tue, 16 Jun 2020 15:00:00 +0000</pubDate>
      <guid>https://cor3ntin.github.io/posts/variadic/</guid>
      <description>A few months ago I presented a few features that I hope will be considered for C++23. I have since then submitted papers for multi-dimensional subscript expressions and &amp;rsquo;_` as a variable placeholder.&#xA;In this article I want to talk about another improvement I would like to see in the next C++ version: Non-trailing variadic template parameters.&#xA;Indeed, while parameter packs can appear before the last function parameter, they do not get properly deduced when they do.</description>
    </item>
    <item>
      <title>To humbly present a wish-list for C&#43;&#43;23</title>
      <link>https://cor3ntin.github.io/posts/humble_wishlist/</link>
      <pubDate>Sun, 12 Apr 2020 16:54:58 +0200</pubDate>
      <guid>https://cor3ntin.github.io/posts/humble_wishlist/</guid>
      <description>In Prague, the committee adopted To boldly suggest an overall plan for C++23, a paper that lays a list of priorities WG21 should focus on for C++23.&#xA;The vote was almost unanimous. I voted against it. I figured it would be interesting to explain why.&#xA;The problem with plans Plans have a nasty tendency to turn into deadlines and expectations.&#xA;There was an uproar when contracts did not ship (even though that was the right decision), while coroutines have shipped with known issues and modules have shipped with little experience with the feature as it is in the standard.</description>
    </item>
    <item>
      <title>Build C&#43;&#43; from source: Part 1/N - Improving compile times</title>
      <link>https://cor3ntin.github.io/posts/compiletime/</link>
      <pubDate>Mon, 23 Mar 2020 16:00:00 +0100</pubDate>
      <guid>https://cor3ntin.github.io/posts/compiletime/</guid>
      <description>This is both a follow-up to my CppCon talk and the ongoing ABI saga, which I do not expect to end any time soon.&#xA;I hope this article to be the first in a series I hope to write over the next few months.&#xA;A quick reminder, ABI is akin to a binary protocol and decides how your types are laid out in memory, how functions are mangled and are called.</description>
    </item>
    <item>
      <title>A few experimental features for C&#43;&#43;</title>
      <link>https://cor3ntin.github.io/posts/qol23/</link>
      <pubDate>Fri, 06 Mar 2020 16:00:00 +0100</pubDate>
      <guid>https://cor3ntin.github.io/posts/qol23/</guid>
      <description>In this article, I present a few language features that I am hoping to see in C++23 and which I have deployed to Compiler Explorer.&#xA;Please note that these features are not part of a working draft and they have not been presented to the C++ committee yet, so it is impossible to comment on whether any of them might land in 23 or not!&#xA;Auto Non-Static Data Members Initializers A while back I presented auto non-static data members initializers.</description>
    </item>
    <item>
      <title>How I use references</title>
      <link>https://cor3ntin.github.io/posts/reference/</link>
      <pubDate>Tue, 25 Feb 2020 12:40:00 +0100</pubDate>
      <guid>https://cor3ntin.github.io/posts/reference/</guid>
      <description>Following a blog post by Herb Sutter, let me tell you how and when I use references.&#xA;If I do not need to mutate an input parameter, I will use a const reference, unless I know that copying is cheaper (When in doubt use a reference). If I do need a copy of the parameter, I accept it by value and move it If I do need to mutate an input parameter, I will accept an input reference.</description>
    </item>
    <item>
      <title>The Day The Standard Library Died</title>
      <link>https://cor3ntin.github.io/posts/abi/</link>
      <pubDate>Mon, 24 Feb 2020 15:30:00 +0100</pubDate>
      <guid>https://cor3ntin.github.io/posts/abi/</guid>
      <description>In Prague, the C++ committee took a series of polls on whether to break ABI, and decided not to.&#xA;There was no applause.&#xA;But I&amp;rsquo;m not sure we fully understood what we did and the consequences it could have.&#xA;I do believe none of the consequences will be good.&#xA;What is ABI ABI is the shared understanding libraries have about how your program is serialized, both in term of layout, calling convention and mangling.</description>
    </item>
    <item>
      <title>Shipping C&#43;&#43;20 in Prague</title>
      <link>https://cor3ntin.github.io/posts/cpp20/</link>
      <pubDate>Wed, 19 Feb 2020 09:21:00 +0100</pubDate>
      <guid>https://cor3ntin.github.io/posts/cpp20/</guid>
      <description>C++20 has shipped!&#xA;C++ is better and more alive than it has ever been.&#xA;You might have read on the Internet (rarely a good idea), that C++ grows too fast, too complicated, too big. I do not think this is true.&#xA;Bjarne Stroustrup reminded us that concepts are mentioned in Design and Evolution of C++, a book written in 1994, before even the first C++ standard. Coroutines and Modules are also old ideas that represent more than a decade of work.</description>
    </item>
    <item>
      <title>move, even more simply</title>
      <link>https://cor3ntin.github.io/posts/move/</link>
      <pubDate>Tue, 18 Feb 2020 13:45:26 +0100</pubDate>
      <guid>https://cor3ntin.github.io/posts/move/</guid>
      <description>std::move doesn&amp;rsquo;t move.&#xA;It casts to an rvalue-reference, which is a type of reference that can be passed to a move constructor or assignment operator, if one exists.&#xA;template &amp;lt;typename T&amp;gt; decltype(auto) move(T&amp;amp;&amp;amp; a) { return static_cast&amp;lt;std::remove_reference_t&amp;lt;T&amp;gt;&amp;amp;&amp;amp;&amp;gt;(a); } Some expressions will be converted to rvalue-references automatically, when the compiler is certain that the value is expiring (will not be reused).&#xA;This is the case for temporaries or non-reference objects returned from functions.</description>
    </item>
    <item>
      <title>A Universal I/O Abstraction for C&#43;&#43;</title>
      <link>https://cor3ntin.github.io/posts/iouring/</link>
      <pubDate>Fri, 31 Jan 2020 15:55:19 +0100</pubDate>
      <guid>https://cor3ntin.github.io/posts/iouring/</guid>
      <description>This article is the sequel to A Universal Async Abstraction for C++, in which I talk about the Executor proposal targeting C++23. Quite a bit happened since then.&#xA;SG-11, the study group charged of all things concurrency and parallelism made forward progress and sent the proposal to LEWG - with the hope of landing a future revision in the C++23 draft. This is rather big news given that this work has been brewing for about a decade.</description>
    </item>
    <item>
      <title>Waiting for std::embed: Very Large Arrays in Clang</title>
      <link>https://cor3ntin.github.io/posts/arrays/</link>
      <pubDate>Mon, 06 Jan 2020 11:48:33 +0000</pubDate>
      <guid>https://cor3ntin.github.io/posts/arrays/</guid>
      <description>Before we start This blog post features iframes, interactive SVG files, and graphs which may not render properly on handheld devices. Sorry about that. The charts are however interactive, so you can zoom in an see the exact values.&#xA;If I were a compiler, I would simply put all your bytes in your binary There have been a few interesting and passionate discussions about std::embed lately.&#xA;std::embed would surely be a great tool to have in one&amp;rsquo;s toolbox, and I&amp;rsquo;m sure some version of it will be adopted in time, once a consensus in reach (I have yet to find someone not sold on the usefulness of that proposal).</description>
    </item>
    <item>
      <title>Storing Unicode: Character Name to Codepoint Mapping</title>
      <link>https://cor3ntin.github.io/posts/name_to_cp/</link>
      <pubDate>Wed, 11 Dec 2019 10:41:18 +0100</pubDate>
      <guid>https://cor3ntin.github.io/posts/name_to_cp/</guid>
      <description>Unicode Characters have a name, which makes it easier to talk about them without having to know their codepoint. For example, the character λ (U+03BB) is called GREEK SMALL LETTER LAMDA.&#xA;Given a character name, we want to be able to know its code point. There are a few use cases for that, the main one being to be able to put Unicode characters by name in string literals, a feature offered by Python, Perl and Perl 6 Raku.</description>
    </item>
    <item>
      <title>A Universal Async Abstraction for C&#43;&#43;</title>
      <link>https://cor3ntin.github.io/posts/executors/</link>
      <pubDate>Wed, 30 Oct 2019 17:56:01 +0100</pubDate>
      <guid>https://cor3ntin.github.io/posts/executors/</guid>
      <description>Executors - of which P0443R11 is one of the latest iterations - is poised to be the most fundamental library addition to C++23.&#xA;But what is it about?&#xA;It is first and foremost a quest to find the most basic building blocks on top of which one could build asynchronous, concurrent and parallel code, whether it be on a small chip or a supercomputer with thousands of CPUs and GPUs.</description>
    </item>
    <item>
      <title>C&#43;&#43; compilation: Fifty shades of Mojibake</title>
      <link>https://cor3ntin.github.io/posts/encoding/</link>
      <pubDate>Sat, 17 Aug 2019 11:46:12 +0200</pubDate>
      <guid>https://cor3ntin.github.io/posts/encoding/</guid>
      <description>Interestingly, writing was initially invented as a way to keep track of numbers. Words came much later.&#xA;Computers are good at numbers. It&amp;rsquo;s the only thing they understand really. So text has to be represented as a sequence of numbers which are interpreted and ascribed meaning.&#xA;Code, in the presence of arbitrary identifiers and string literals as to be considered as text. In the context of C++, how is the text of our program interepreted and transcoded during compilation?</description>
    </item>
    <item>
      <title>Characters sets: A bad idea since the bronze age</title>
      <link>https://cor3ntin.github.io/posts/characterset/</link>
      <pubDate>Sat, 27 Apr 2019 16:18:53 +0200</pubDate>
      <guid>https://cor3ntin.github.io/posts/characterset/</guid>
      <description>You who shall hereafter see this tablet, which I have written, or these sculptures, do not destroy them, but preserve them so long as you live! In 522 BC, 𐎭𐎠𐎼𐎹𐎢𐏁 also known as Dārīus was king of the Persian Empire. Kings crave fame as they do power and so Darius (who the greek later called Δαρεῖος) had his henchmen carve his name in stone. One such stone is the Behistun Inscription, which is really more a mountain than a stone.</description>
    </item>
    <item>
      <title>Kona: A trip report</title>
      <link>https://cor3ntin.github.io/posts/kona2019/</link>
      <pubDate>Thu, 28 Feb 2019 14:11:03 +0100</pubDate>
      <guid>https://cor3ntin.github.io/posts/kona2019/</guid>
      <description>I was lucky enough to participate in a third wg21 committee meeting in a row, this time in Kona, Hawaii, a mere 13000 kilometers away.&#xA;Kona As is tradition, Bryce and others wrote a rather thorough trip report on Reddit and you should check it out. However, if you want to read more details about my experience and some of the proposals I find important, please read on (knowing that your time is limited, and doing so will leave less time to read other blog posts).</description>
    </item>
    <item>
      <title>Parentheses</title>
      <link>https://cor3ntin.github.io/posts/parentheses/</link>
      <pubDate>Tue, 26 Feb 2019 07:00:36 -1000</pubDate>
      <guid>https://cor3ntin.github.io/posts/parentheses/</guid>
      <description>foo(); This is foo. But what is foo? An astute reader may assume foo is a function.&#xA;What kind of function? It is obviously not a virtual function. But it might be a function pointer. It might be a function object. It might even be a shiny post-modern lambda. Or the constructor of some class foo.&#xA;It doesn&amp;rsquo;t matter. All these things amount to plain, old and boring functions. You can call them.</description>
    </item>
    <item>
      <title>What is C&#43;&#43; ?</title>
      <link>https://cor3ntin.github.io/posts/what_is_cpp/</link>
      <pubDate>Sun, 06 Jan 2019 10:06:24 +0100</pubDate>
      <guid>https://cor3ntin.github.io/posts/what_is_cpp/</guid>
      <description>These past few weeks have been quite difficult for me. I have therefore not followed closely the ongoing discussions about C++, ranges, game developers and iota.&#xA;I&amp;rsquo;m afraid my current outlook on things is rather cynical and I&amp;rsquo;ve been told I might be too assertive and opinionated. So, rather than another exercise in quixotism, or a pointless opinion on how best name a function that creates a sequence, let me ask a few questions.</description>
    </item>
    <item>
      <title>Towards Better C&#43;&#43; Modules - Part 2: Modules naming</title>
      <link>https://cor3ntin.github.io/posts/modules_naming/</link>
      <pubDate>Thu, 06 Dec 2018 00:00:00 +0000</pubDate>
      <guid>https://cor3ntin.github.io/posts/modules_naming/</guid>
      <description>In case you have been napping, in the last installment we talked about modules mapping, and so now we must talk about modules naming.&#xA;You see, modules have names and names are hard. In this case, names serve to identify uniquely each module used through the program.&#xA;The end of this article proposes to govern module naming through an official WG21 standing document and I would love your opinion. But be patient!</description>
    </item>
    <item>
      <title>Towards Better C&#43;&#43; Modules - Part 1: Modules mapping</title>
      <link>https://cor3ntin.github.io/posts/modules_mapping/</link>
      <pubDate>Mon, 26 Nov 2018 20:26:40 +0100</pubDate>
      <guid>https://cor3ntin.github.io/posts/modules_mapping/</guid>
      <description>In this blog post, we will talk about modules mapping. Modules mapping is a mechanism by which is a module name is associated with the source file that defines that module&amp;rsquo;s interface.&#xA;A module is closed and self-contained. Which mean that for every module name there must exist one and only source file defining that module.&#xA;Module mapping is not useful to the compiler per-say. By the time the compiler encounters an import declaration, the module binary interface must exist and be known to the compiler.</description>
    </item>
    <item>
      <title>RangeOf: A better span</title>
      <link>https://cor3ntin.github.io/posts/rangeof/</link>
      <pubDate>Sun, 25 Nov 2018 11:50:51 +0100</pubDate>
      <guid>https://cor3ntin.github.io/posts/rangeof/</guid>
      <description>I don&amp;rsquo;t like span.&#xA;Since that article was posted, the committee improved span quite a bit by removing operator== and making it&amp;rsquo;s size() consistent with that of vector after a lot of discussions. And I mean a lot.&#xA;What is span: 30 seconds refresher If you have N T laid out contiguously in memory, you can build a span&amp;lt;T&amp;gt; over them. Span being a value type you can move it around, copy it and so forth.</description>
    </item>
    <item>
      <title>San Diego Committee Meeting: A Trip Report</title>
      <link>https://cor3ntin.github.io/posts/sandiego/</link>
      <pubDate>Fri, 16 Nov 2018 13:42:44 +0100</pubDate>
      <guid>https://cor3ntin.github.io/posts/sandiego/</guid>
      <description>As I left Rapperswil earlier this year, I said very firmly that I would not go to the San Diego Meeting.&#xA;Crossing an ocean to work on C++ 12 hours a day for a week is indeed madness.&#xA;And so naturally, I found myself in a San Diego hotel straight from the 60s, to do some C++ for a week. With the exception of the author of this blog, all people there are incredibly smart and energetic, and so a lot of great work was done.</description>
    </item>
    <item>
      <title>Modules are not a tooling opportunity</title>
      <link>https://cor3ntin.github.io/posts/modules/</link>
      <pubDate>Wed, 31 Oct 2018 23:16:15 +0100</pubDate>
      <guid>https://cor3ntin.github.io/posts/modules/</guid>
      <description>C++ Modules are going through the standardization process and current plans would have them merged in the C++ Standard in time for C++20. They are a great language feature, offering a number of benefits over headers&#xA;They feel more modern They are much faster to parse They provide protections against macros They provide some protections against ODR violations. I really can&amp;rsquo;t wait to be able to replace headers with them in my code bases.</description>
    </item>
    <item>
      <title>Translation units considered harmful ?</title>
      <link>https://cor3ntin.github.io/posts/translation_units/</link>
      <pubDate>Mon, 29 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://cor3ntin.github.io/posts/translation_units/</guid>
      <description>Let say you have some struct square you want to compute the area of.&#xA;struct square { int width; }&#xA;You could of course do that:&#xA;int area(square s) { return s.width * s.width; }&#xA;But, your friend Tony told you to use more functions, so instead you do that&#xA;int area(square s) { return width(s) * width(s); } int width(square s) { return s.width; } area being the function you really care about it is defined first - after all, code reads from top to bottom.</description>
    </item>
    <item>
      <title>Commas</title>
      <link>https://cor3ntin.github.io/posts/commas/</link>
      <pubDate>Tue, 21 Aug 2018 23:08:53 +0200</pubDate>
      <guid>https://cor3ntin.github.io/posts/commas/</guid>
      <description></description>
    </item>
    <item>
      <title>The case for Auto Non-Static Data Member Initializers</title>
      <link>https://cor3ntin.github.io/posts/auto_nsdmi/</link>
      <pubDate>Sun, 12 Aug 2018 11:27:00 +0200</pubDate>
      <guid>https://cor3ntin.github.io/posts/auto_nsdmi/</guid>
      <description>In this article, we talk about Auto Non-Static Data Member Initializers in C++. All code snippet can be tested on Compiler Explorer thanks to Matt Godbolt and the CE team. The clang patch to enable this feature was authored by Faisal Vali 5 years ago, but I have crudely rebased it on top of clang trunk (~ 7.0).&#xA;In fact, the main motivation for this article is to put this feature in the hand of people to prove that it works and that it would be a great addition to the standard.</description>
    </item>
    <item>
      <title>Concept and template syntax take 836</title>
      <link>https://cor3ntin.github.io/posts/template_syntax/</link>
      <pubDate>Sat, 07 Jul 2018 11:16:27 +0200</pubDate>
      <guid>https://cor3ntin.github.io/posts/template_syntax/</guid>
      <description>The return of the adjective syntax A couple of weeks ago, I made an article on concept terse syntax and I thank the people who took the time to take the poll, it was quite revealing.&#xA;And since then a new paper, P1141 - Yet another approach for constrained declarations came out. Despite the name, it&amp;rsquo;s pretty much the Adjective syntax, repacked with an impressive authors list including Herb Sutter (author of the In-Place syntax proposal), Bjarne Stroustrup and Gabriel Dos Reis (authors of &amp;ldquo;minimal solution&amp;rdquo; proposals) and Thomas Köppe (author of one of the adjective syntax proposal), so it would seem that we are converging towards a solution that pleases a large number of people (and that is, after all, the name of the game).</description>
    </item>
    <item>
      <title>The tightly-constrained design space of convenient syntaxes for generic programming</title>
      <link>https://cor3ntin.github.io/posts/concepts_syntax/</link>
      <pubDate>Wed, 13 Jun 2018 11:32:09 +0200</pubDate>
      <guid>https://cor3ntin.github.io/posts/concepts_syntax/</guid>
      <description>Please take the quick survey on concept syntax at the end of this article. Did you know that the Concept TS was merged into the Working Draft in July 2017, in Toronto? And we are a Planck length away from merging the Range TS in C++20 as well, including a few goodies such as projections, contiguous ranges/iterators and ranges adaptors? We also added a bunch of general-purpose concepts in the std namespace in Rapperswil.</description>
    </item>
    <item>
      <title>Rapperswil Committee Meeting: A Trip Report</title>
      <link>https://cor3ntin.github.io/posts/rapperswil/</link>
      <pubDate>Mon, 11 Jun 2018 12:26:11 +0200</pubDate>
      <guid>https://cor3ntin.github.io/posts/rapperswil/</guid>
      <description>This was my first committee meeting. I arrived Sunday morning at Jona, the next town over where I had a lovely AirBnB in a very nice, peaceful suburb. I settled to visit Rapperswil but met some people from Nvidia going to the meeting. So we naturally started to talk about C++. The meeting was to last 6 days and until the very end, we talked about C++, every minute of every hour.</description>
    </item>
    <item>
      <title>A Json Parser Part 1 : Reading a file</title>
      <link>https://cor3ntin.github.io/posts/read_a_file/</link>
      <pubDate>Wed, 23 May 2018 20:03:48 +0200</pubDate>
      <guid>https://cor3ntin.github.io/posts/read_a_file/</guid>
      <description>The year is 2021. A rainy Sunday afternoon. It&amp;rsquo;s getting increasingly more difficult to ignore the looming shadow of The Great Rewrite.&#xA;But you ran out of cacao and there is nothing on HBO. So you guzzle a fourth cup of coffee and decide to start a new project. In C++ of course. You sacrificed too much to reevaluate your life choices now.&#xA;But you need to do something new. Something to impress, Something to shine, like a diamond.</description>
    </item>
    <item>
      <title>A can of span</title>
      <link>https://cor3ntin.github.io/posts/span/</link>
      <pubDate>Mon, 14 May 2018 12:36:14 +0200</pubDate>
      <guid>https://cor3ntin.github.io/posts/span/</guid>
      <description>The papers that will be discussed at the next C++ committee meeting are out. The listing contains a number of interesting and controversial papers. Among them, Herbceptions, a number of concurrent concurrency proposals, a proposal calling for major design changes in the coroutines TS, And an easy-to-review, 200 pages long proposal to unify the Range TS in the std namespace.&#xA;In total, there are about 140 papers all rather interesting.</description>
    </item>
    <item>
      <title>C&#43;&#43; Attributes</title>
      <link>https://cor3ntin.github.io/posts/attributes/</link>
      <pubDate>Sun, 22 Apr 2018 00:00:00 +0000</pubDate>
      <guid>https://cor3ntin.github.io/posts/attributes/</guid>
      <description>In C++11, attributes were added as a way to standardized features such as gnu __attribute__and msvc’s __declspec.&#xA;The language provisions for standard attributes as well as non-standard attributes through the use of namespaces, though the behavior of non-standard attributes was only settled for C++17. And sadly, as of 2018, neither GCC nor MSVC offer their vendor-specific attributes though the portable C++ standard syntax.&#xA;Most standard attributes were added in C++14 and 17.</description>
    </item>
    <item>
      <title>Accio Dependency Manager</title>
      <link>https://cor3ntin.github.io/posts/dep_manager/</link>
      <pubDate>Sat, 03 Mar 2018 00:00:00 +0000</pubDate>
      <guid>https://cor3ntin.github.io/posts/dep_manager/</guid>
      <description>You may have noticed a number of “What should go in the Standard Library” posts over the last few days. These posts have generated quite a bit of comments on Reddit and discussions on Slack. I hope more people chime in.&#xA;The conclusion is that we pretty much all agree to disagree on what the STL is or should be. I’m not sure we can even agree on what C++ is.</description>
    </item>
    <item>
      <title>A cake for your cherry: what should go in the C&#43;&#43; standard library?</title>
      <link>https://cor3ntin.github.io/posts/what_should_go_in_stl/</link>
      <pubDate>Wed, 21 Feb 2018 00:00:00 +0000</pubDate>
      <guid>https://cor3ntin.github.io/posts/what_should_go_in_stl/</guid>
      <description>This is a reply to Guy Davidson’s article “Batteries not included: what should go in the C++ standard library?”.&#xA;Over the past few years there has been a push to include a graphics library into the C++ standard. It would be something a bit like cairo. Or SDL. The proposal, in its current form, is here&#xA;In its current state, the library proposal can draw some shapes on a pre-allocated surface, has some support for images, and there are of courses projects to add text, maybe some input in the form of mouse / keyboard handling.</description>
    </item>
    <item>
      <title>On the state of cross-compilation in the C&#43;&#43; World</title>
      <link>https://cor3ntin.github.io/posts/cross_compilation/</link>
      <pubDate>Fri, 02 Feb 2018 00:00:00 +0000</pubDate>
      <guid>https://cor3ntin.github.io/posts/cross_compilation/</guid>
      <description>I wrote a series of article where I compile simple Windows and OSX applications from Linux.&#xA;I hope you enjoyed it. For me, it certainly was quite the journey. Or the beginning of one. There is lot of rooms for improvement and we left some area unexplored, including some other major Operating systems like Android and iOS. I also did not talk about debugging.&#xA;The open source community is amazing. We should not take projects like llvm, wine, darling, or even osxcross for granted.</description>
    </item>
    <item>
      <title>A C&#43;&#43; Hello World And The Rose Gold Walled Garden Of Doom</title>
      <link>https://cor3ntin.github.io/posts/helloworld_p3/</link>
      <pubDate>Mon, 29 Jan 2018 00:00:00 +0000</pubDate>
      <guid>https://cor3ntin.github.io/posts/helloworld_p3/</guid>
      <description>This is Part 3 on my series about cross-compilation. You can check out part 1 1 and part 2 2 first !&#xA;linuxnewbieguide.org You cannot caters to the needs of Windows and Linux users while ignoring the third major, well, second actually, desktop operating system.&#xA;The Operating System I’m talking about is of course developed and commercialized by a company best known as the one who gave Clang to the world, is mostly responsible for maintaining WebKit (after most of the industry moved to Chromium), and created some other amazing open sources softwares such as CUPS.</description>
    </item>
    <item>
      <title>A C&#43;&#43; Hello World And the Cute Heartless Rainbow</title>
      <link>https://cor3ntin.github.io/posts/helloworld_p2/</link>
      <pubDate>Wed, 24 Jan 2018 00:00:00 +0000</pubDate>
      <guid>https://cor3ntin.github.io/posts/helloworld_p2/</guid>
      <description>This is Part two of a series wherein we build a “Hello World” application. If you are late to the party, I encourage you to check part 1 first.&#xA;Hic Sunt Arcūs So, our Boss came in to check on our progress. They were starting to wonder why it takes a whole day to port a 3 lines application to a new system. But the real reason of their visit was to ask for a new feature.</description>
    </item>
    <item>
      <title>A C&#43;&#43; Hello World And A Glass Of Wine, Oh My !</title>
      <link>https://cor3ntin.github.io/posts/helloworld_p1/</link>
      <pubDate>Mon, 22 Jan 2018 00:00:00 +0000</pubDate>
      <guid>https://cor3ntin.github.io/posts/helloworld_p1/</guid>
      <description>#include &amp;lt;iostream&amp;gt; int main() { std::cout &amp;lt;&amp;lt; &amp;#34;Hello, World\n&amp;#34;; } Nothing to remove, nothing to add.&#xA;This is the proper “Hello World” in C++. All the others Hello World are wrong. But this is not where I rant about how using namespace std; crystallizes everything messed up with the teaching of C++. Another time perhaps.&#xA;Today we are gonna be compiling that hello world so that it can be executed on a target system.</description>
    </item>
    <item>
      <title>An Ode To Code Formatting Tools</title>
      <link>https://cor3ntin.github.io/posts/ode_formatting/</link>
      <pubDate>Sat, 20 Jan 2018 00:00:00 +0000</pubDate>
      <guid>https://cor3ntin.github.io/posts/ode_formatting/</guid>
      <description>Your modifications fix the calculation&#xA;But I’m afraid you forgot a tabulation.&#xA;This is the beginning of your tribulation.&#xA;Your perfect correction won’t bring you elation.&#xA;If there was a way to just automate,&#xA;Maybe you could avoid arguing with your mate.&#xA;Should there be a space after the bracket&#xA;How many white spaces, How many line breaks&#xA;Did you know tools could format your troubles away?&#xA;You have to choose, there is no midway</description>
    </item>
    <item>
      <title>Undefining the C&#43;&#43; Pre-processor</title>
      <link>https://cor3ntin.github.io/posts/undef_preprocessor/</link>
      <pubDate>Wed, 10 Jan 2018 00:00:00 +0000</pubDate>
      <guid>https://cor3ntin.github.io/posts/undef_preprocessor/</guid>
      <description>There are only two kinds of languages: the ones people complain about and the ones nobody uses — Bjarne Stroustrup&#xA;I like that quote. it explains both JavaScript and Haskell. And by that measure the preprocessor is a great language in that people use it, a lot. It’s never considered separately from C and C++, but if it was, it would be the number one language on TIOBE. The preprocessor is both extremely useful, and pervasive.</description>
    </item>
    <item>
      <title>Stranded with a C&#43;&#43; compiler and a bunch of queues</title>
      <link>https://cor3ntin.github.io/posts/stack_queue/</link>
      <pubDate>Mon, 31 Oct 2016 00:00:00 +0000</pubDate>
      <guid>https://cor3ntin.github.io/posts/stack_queue/</guid>
      <description>A friend had a phone interview for a job in a company that I won’t name&#xA;It’s Microsoft. One of the questions was about describing how he would write a stack, only using standard queues. I was confounded, because long before an algorithm could form in my mind, I already decided that there was no solution that would actually be useful in any real life scenario.&#xA;template &amp;lt;typename T, typename Container = std::queue&amp;lt;T&amp;gt;&amp;gt; class stack { public: void push(const T &amp;amp;); void pop(); T&amp;amp; top(); std::size_t size() const; bool empty() const; private: void transfer(); Container a, b; }; template &amp;lt;typename T, typename Container&amp;gt; void stack&amp;lt;T, Container&amp;gt;::push(const T&amp;amp; t) { a.</description>
    </item>
  </channel>
</rss>
