<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: DLoupe</title><link>https://news.ycombinator.com/user?id=DLoupe</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 04 Apr 2026 09:13:35 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=DLoupe" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by DLoupe in "C++ move semantics from scratch (2022)"]]></title><description><![CDATA[
<p>I think you missed my point. The problem is not lack of guarding against programmer mistakes. It's that the compiler generates unnecessary code.</p>
]]></description><pubDate>Sun, 09 Nov 2025 09:10:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=45864146</link><dc:creator>DLoupe</dc:creator><comments>https://news.ycombinator.com/item?id=45864146</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45864146</guid></item><item><title><![CDATA[New comment by DLoupe in "C++ move semantics from scratch (2022)"]]></title><description><![CDATA[
<p>"Another difference in Rust is that values cannot be used after a move, while they simply "should not be used, mostly" in C++"<p>That's one of my biggest issues with C++ today. Objects that can be moved must support a "my value was moved out" state. So every access to the object usually starts with "if (have-a-value())". It also means that the destructor is called for an object that won't be used anymore.</p>
]]></description><pubDate>Sat, 08 Nov 2025 19:58:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=45859478</link><dc:creator>DLoupe</dc:creator><comments>https://news.ycombinator.com/item?id=45859478</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45859478</guid></item><item><title><![CDATA[New comment by DLoupe in "Rust: A quest for performant, reliable software [video]"]]></title><description><![CDATA[
<p>and of Even Toned Screens, the halftoning algorithm used by many linux print drivers.</p>
]]></description><pubDate>Sat, 13 Sep 2025 08:47:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=45230464</link><dc:creator>DLoupe</dc:creator><comments>https://news.ycombinator.com/item?id=45230464</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45230464</guid></item><item><title><![CDATA[New comment by DLoupe in "The repercussions of missing an Ampersand in C++ and Rust"]]></title><description><![CDATA[
<p>The compiler generates code for calling the destructor after the object was moved. This was problem #1.<p>Regarding #2, take Resource Acquisition Is Initialization (RAII) as an example - in RAII, the existence of an object implies the existence of a resource. Now, if you want to be able to move, the object becomes "either the resource exists or it was moved out". As someone else noted in the comments, this affects not only the destructor. Methods cannot assume the existence of the resource, they have to check it first. Kind of like optional<MyResource>.</p>
]]></description><pubDate>Mon, 08 Sep 2025 07:25:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=45165484</link><dc:creator>DLoupe</dc:creator><comments>https://news.ycombinator.com/item?id=45165484</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45165484</guid></item><item><title><![CDATA[New comment by DLoupe in "The repercussions of missing an Ampersand in C++ and Rust"]]></title><description><![CDATA[
<p>> I wonder what you are doing to get yourself in that situation.<p>The problem with the current move semantics is that, compared to e.g. Rust: 1) the compiler generates unnecessary code and 2) instead of just implementing class T you must implement a kind of optional<T>.<p>Which means, that after all those years of using smart pointers I find myself ditching them in favor of plain pointers like we did in the 90's.</p>
]]></description><pubDate>Sun, 07 Sep 2025 20:51:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=45162016</link><dc:creator>DLoupe</dc:creator><comments>https://news.ycombinator.com/item?id=45162016</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45162016</guid></item><item><title><![CDATA[New comment by DLoupe in "The repercussions of missing an Ampersand in C++ and Rust"]]></title><description><![CDATA[
<p>By adding syntax and semantics for destructible moves, meaning the moved object is removed from its scope (without calling its destructor.)</p>
]]></description><pubDate>Sun, 07 Sep 2025 04:00:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=45155281</link><dc:creator>DLoupe</dc:creator><comments>https://news.ycombinator.com/item?id=45155281</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45155281</guid></item><item><title><![CDATA[New comment by DLoupe in "The repercussions of missing an Ampersand in C++ and Rust"]]></title><description><![CDATA[
<p>Since I use move semantics all the time, this is for me the most frustrating thing about C++ full stop. I really wish they'd fix this instead of adding all those compile-time features.</p>
]]></description><pubDate>Sat, 06 Sep 2025 10:10:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=45148033</link><dc:creator>DLoupe</dc:creator><comments>https://news.ycombinator.com/item?id=45148033</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45148033</guid></item><item><title><![CDATA[New comment by DLoupe in "C++26 Reflections adventures and compile-time UML"]]></title><description><![CDATA[
<p>For example, boost library's "describe" and similar macro based solutions. Been using this for many years.</p>
]]></description><pubDate>Sun, 03 Aug 2025 07:15:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=44774741</link><dc:creator>DLoupe</dc:creator><comments>https://news.ycombinator.com/item?id=44774741</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44774741</guid></item><item><title><![CDATA[New comment by DLoupe in "Google can now read your WhatsApp messages"]]></title><description><![CDATA[
<p>If you use Google to backup your WhatsApp chats (most people do), Google can already read your messages, because the backup is not encrypted.</p>
]]></description><pubDate>Tue, 08 Jul 2025 21:30:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=44504225</link><dc:creator>DLoupe</dc:creator><comments>https://news.ycombinator.com/item?id=44504225</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44504225</guid></item><item><title><![CDATA[New comment by DLoupe in "Are we the baddies?"]]></title><description><![CDATA[
<p>It's called "dynamic pricing" and it's everywhere.
<a href="https://de.wikipedia.org/wiki/Dynamic_Pricing" rel="nofollow">https://de.wikipedia.org/wiki/Dynamic_Pricing</a></p>
]]></description><pubDate>Sun, 06 Jul 2025 21:53:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=44484429</link><dc:creator>DLoupe</dc:creator><comments>https://news.ycombinator.com/item?id=44484429</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44484429</guid></item><item><title><![CDATA[New comment by DLoupe in "Features of D That I Love"]]></title><description><![CDATA[
<p>Thanks so much for replying, Walter. 
I'll give it another try.</p>
]]></description><pubDate>Fri, 04 Jul 2025 19:52:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=44467355</link><dc:creator>DLoupe</dc:creator><comments>https://news.ycombinator.com/item?id=44467355</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44467355</guid></item><item><title><![CDATA[New comment by DLoupe in "Features of D That I Love"]]></title><description><![CDATA[
<p>For me, D failed to replace C++ because of lack of design. It is more a mix of great features. But once you start learning the details simple things can get very complicated.<p>For example, function arguments can be "in", "out", "inout", "ref", "scope", "return ref" - and combinations.<p>Another example is conditional compilation. Great when used sparely, but can otherwise make it very difficult to understand how the code flows.<p>In the end, reading the source code of the standard library convinced me against it.<p>(The source code for the C++ standard library is much worse, of course).</p>
]]></description><pubDate>Thu, 03 Jul 2025 14:35:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=44455499</link><dc:creator>DLoupe</dc:creator><comments>https://news.ycombinator.com/item?id=44455499</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44455499</guid></item><item><title><![CDATA[New comment by DLoupe in "After 'coding error' triggers firings, top NIH scientists called back to work"]]></title><description><![CDATA[
<p>Its's Evil (Evil = Incompetence + Power)</p>
]]></description><pubDate>Mon, 07 Apr 2025 03:53:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=43607479</link><dc:creator>DLoupe</dc:creator><comments>https://news.ycombinator.com/item?id=43607479</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43607479</guid></item><item><title><![CDATA[New comment by DLoupe in "Canon wants us to pay for using our own camera as a webcam"]]></title><description><![CDATA[
<p>Why $6,2999 when the article says he payed around $900?</p>
]]></description><pubDate>Fri, 17 Jan 2025 09:13:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=42735546</link><dc:creator>DLoupe</dc:creator><comments>https://news.ycombinator.com/item?id=42735546</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42735546</guid></item><item><title><![CDATA[New comment by DLoupe in "Retrofitting spatial safety to lines of C++"]]></title><description><![CDATA[
<p>> The safety checks have uncovered over 1,000 bugs<p>In most implementations of the standard library, safety checks can be enabled with a simple #define. In some, it's the default behavior in DEBUG mode. I wonder what this library improves on that and why these bugs have not been discovered before.</p>
]]></description><pubDate>Sat, 16 Nov 2024 08:46:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=42155324</link><dc:creator>DLoupe</dc:creator><comments>https://news.ycombinator.com/item?id=42155324</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42155324</guid></item><item><title><![CDATA[New comment by DLoupe in "Arrest of Pavel Durov, Telegram CEO, charges of terrorism, fraud, child porn"]]></title><description><![CDATA[
<p>The chats are encrypted but the backup saved in the cloud isn't. So if someone gets access to your Google Drive he can read your WhatsApp chats. You can opt-in to encrypt the backup but it doesn't work well.</p>
]]></description><pubDate>Sun, 25 Aug 2024 17:13:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=41349110</link><dc:creator>DLoupe</dc:creator><comments>https://news.ycombinator.com/item?id=41349110</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41349110</guid></item><item><title><![CDATA[New comment by DLoupe in "GPU-Friendly Stroke Expansion"]]></title><description><![CDATA[
<p>Oops, he did it again. Congrats Raph, and thanks - your work and your writing have been an inspiration to me for my entire career (~25 years).</p>
]]></description><pubDate>Sat, 06 Jul 2024 19:36:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=40892661</link><dc:creator>DLoupe</dc:creator><comments>https://news.ycombinator.com/item?id=40892661</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40892661</guid></item></channel></rss>