<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Programming on 3rd&#39;s Blog - Seeking Truth</title>
    <link>https://www.333rd.net/en/categories/programming/</link>
    <description>Recent content in Programming on 3rd&#39;s Blog - Seeking Truth</description>
    <image>
      <title>3rd&#39;s Blog - Seeking Truth</title>
      <url>https://www.333rd.net/img/logo.png</url>
      <link>https://www.333rd.net/img/logo.png</link>
    </image>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 30 Aug 2024 13:13:43 +0800</lastBuildDate>
    <atom:link href="https://www.333rd.net/en/categories/programming/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Cross-Compiling Boost</title>
      <link>https://www.333rd.net/en/posts/tech/boost-cross-compilation/</link>
      <pubDate>Fri, 30 Aug 2024 13:13:43 +0800</pubDate>
      <guid>https://www.333rd.net/en/posts/tech/boost-cross-compilation/</guid>
      <description>Be sure to configure sysroot when cross-compiling</description>
    </item>
    <item>
      <title>Counting the Elements in a C&#43;&#43; Enum</title>
      <link>https://www.333rd.net/en/posts/read/counting-cpp-enum-elements/</link>
      <pubDate>Thu, 29 Aug 2024 13:20:15 +0800</pubDate>
      <guid>https://www.333rd.net/en/posts/read/counting-cpp-enum-elements/</guid>
      <description>I recently had a special requirement to determine the number of elements in an enum type, and in the process I learned the following clever tricks.</description>
    </item>
    <item>
      <title>A Pitfall in C&#43;&#43; Condition Variable&#39;s wait Method</title>
      <link>https://www.333rd.net/en/posts/read/cpp-condition-variable-wait-pitfall/</link>
      <pubDate>Sat, 24 Aug 2024 03:34:31 +0800</pubDate>
      <guid>https://www.333rd.net/en/posts/read/cpp-condition-variable-wait-pitfall/</guid>
      <description>When a predicate passed to C&#43;&#43; condition variable&amp;#39;s wait method returns true, the method exits immediately instead of waiting.</description>
    </item>
    <item>
      <title>Reactor and Proactor</title>
      <link>https://www.333rd.net/en/posts/read/reactor-and-proactor/</link>
      <pubDate>Sat, 20 Apr 2024 15:30:16 +0800</pubDate>
      <guid>https://www.333rd.net/en/posts/read/reactor-and-proactor/</guid>
      <description>There are only two approaches for performing IO operations efficiently.</description>
    </item>
    <item>
      <title>C&#43;&#43; Project Conventions</title>
      <link>https://www.333rd.net/en/posts/read/cpp-project-conventions/</link>
      <pubDate>Tue, 16 Apr 2024 19:47:10 +0800</pubDate>
      <guid>https://www.333rd.net/en/posts/read/cpp-project-conventions/</guid>
      <description>Keeping your code consistent with the existing codebase is a good practice.</description>
    </item>
    <item>
      <title>C&#43;&#43; Forward Declarations</title>
      <link>https://www.333rd.net/en/posts/read/cpp-forward-declarations/</link>
      <pubDate>Thu, 25 Jan 2024 22:08:29 +0800</pubDate>
      <guid>https://www.333rd.net/en/posts/read/cpp-forward-declarations/</guid>
      <description>&lt;h1 id=&#34;c-forward-declarations&#34;&gt;C++ Forward Declarations&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;Sometimes, especially when writing libraries intended for others to use, you may not want to expose too many implementation details or force consumers to pull in unnecessary header files. &lt;strong&gt;Forward declarations&lt;/strong&gt; let you avoid including other headers while still using the types declared in them.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;explanation&#34;&gt;Explanation&lt;/h2&gt;
&lt;p&gt;As the &lt;a href=&#34;https://zh.wikipedia.org/zh-cn/%E5%89%8D%E5%90%91%E5%A3%B0%E6%98%8E&#34; title=&#34;Forward declaration&#34;&gt;Forward declaration&lt;/a&gt; Wikipedia article states:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In computer programming, a &lt;strong&gt;forward declaration&lt;/strong&gt; is a declaration of an identifier (denoting a programming entity such as a type, variable, or function) before its definition is given.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CMake Gotchas</title>
      <link>https://www.333rd.net/en/posts/read/cmake-notes/</link>
      <pubDate>Fri, 05 Jan 2024 10:17:21 +0800</pubDate>
      <guid>https://www.333rd.net/en/posts/read/cmake-notes/</guid>
      <description>When working with CMake, never assume you know how something works. Guessing can easily lead you into a subtle &amp;#39;feature&amp;#39; trap.</description>
    </item>
    <item>
      <title>CMake Configuration for Dynamically Linking spdlog</title>
      <link>https://www.333rd.net/en/posts/tech/spdlog-shared-library-cmake/</link>
      <pubDate>Tue, 05 Dec 2023 09:28:53 +0800</pubDate>
      <guid>https://www.333rd.net/en/posts/tech/spdlog-shared-library-cmake/</guid>
      <description>CMake configuration for dynamically linking spdlog</description>
    </item>
    <item>
      <title>When to Use decltype in C&#43;&#43;</title>
      <link>https://www.333rd.net/en/posts/read/when-to-use-cpp-decltype/</link>
      <pubDate>Tue, 05 Dec 2023 09:25:51 +0800</pubDate>
      <guid>https://www.333rd.net/en/posts/read/when-to-use-cpp-decltype/</guid>
      <description>auto is more versatile than decltype.</description>
    </item>
    <item>
      <title>Embedding ICO Icons in Tkinter</title>
      <link>https://www.333rd.net/en/posts/tech/tkinter-embed-ico-icon/</link>
      <pubDate>Mon, 30 Oct 2023 14:55:35 +0800</pubDate>
      <guid>https://www.333rd.net/en/posts/tech/tkinter-embed-ico-icon/</guid>
      <description>This article describes how Tkinter embeds an icon into an executable file.</description>
    </item>
    <item>
      <title>C&#43;&#43; Singleton Template</title>
      <link>https://www.333rd.net/en/posts/read/cpp-singleton-template/</link>
      <pubDate>Thu, 29 Jun 2023 11:20:03 +0800</pubDate>
      <guid>https://www.333rd.net/en/posts/read/cpp-singleton-template/</guid>
      <description>A single-header C&#43;&#43; singleton template.</description>
    </item>
    <item>
      <title>What Is Reflection in Programming?</title>
      <link>https://www.333rd.net/en/posts/read/programming-reflection/</link>
      <pubDate>Tue, 11 Apr 2023 00:46:56 +0800</pubDate>
      <guid>https://www.333rd.net/en/posts/read/programming-reflection/</guid>
      <description>technical jargon,plain-languageWhat Is reflection.</description>
    </item>
    <item>
      <title>Setting Up a Private Git Service with Gitea</title>
      <link>https://www.333rd.net/en/posts/tech/gitea-private-git-service/</link>
      <pubDate>Sun, 19 Feb 2023 22:33:35 +0800</pubDate>
      <guid>https://www.333rd.net/en/posts/tech/gitea-private-git-service/</guid>
      <description>Set up a private Git service with Gitea and enable SSL.</description>
    </item>
    <item>
      <title>Using External Tools in PyCharm</title>
      <link>https://www.333rd.net/en/posts/tech/pycharm-external-tools/</link>
      <pubDate>Fri, 07 Oct 2022 02:15:48 +0800</pubDate>
      <guid>https://www.333rd.net/en/posts/tech/pycharm-external-tools/</guid>
      <description>Boost your work efficiency by using external tools in PyCharm.</description>
    </item>
    <item>
      <title>SHA Message Digest</title>
      <link>https://www.333rd.net/en/posts/read/sha-message-digest/</link>
      <pubDate>Mon, 12 Sep 2022 23:11:46 +0800</pubDate>
      <guid>https://www.333rd.net/en/posts/read/sha-message-digest/</guid>
      <description>An explanation of the SHA message digest algorithm, using SHA-256 as an example.</description>
    </item>
    <item>
      <title>Header-File Design and Usage Guidelines</title>
      <link>https://www.333rd.net/en/posts/read/header-file-design-guidelines/</link>
      <pubDate>Tue, 09 Aug 2022 16:40:03 +0800</pubDate>
      <guid>https://www.333rd.net/en/posts/read/header-file-design-guidelines/</guid>
      <description>Design and usage guidelines for C and C&#43;&#43; header files.</description>
    </item>
    <item>
      <title>Modulo and Remainder</title>
      <link>https://www.333rd.net/en/posts/read/modulo-and-remainder/</link>
      <pubDate>Thu, 04 Aug 2022 16:47:11 +0800</pubDate>
      <guid>https://www.333rd.net/en/posts/read/modulo-and-remainder/</guid>
      <description>What modulo and remainder operations are.</description>
    </item>
    <item>
      <title>C&#43;&#43; Polymorphism</title>
      <link>https://www.333rd.net/en/posts/read/cpp-polymorphism/</link>
      <pubDate>Sat, 09 Jul 2022 20:27:02 +0800</pubDate>
      <guid>https://www.333rd.net/en/posts/read/cpp-polymorphism/</guid>
      <description>An in-depth exploration of C&#43;&#43; polymorphism for object-oriented programming.</description>
    </item>
    <item>
      <title>A Few Things About Structs</title>
      <link>https://www.333rd.net/en/posts/read/structs-in-c-and-cpp/</link>
      <pubDate>Fri, 25 Feb 2022 22:07:42 +0800</pubDate>
      <guid>https://www.333rd.net/en/posts/read/structs-in-c-and-cpp/</guid>
      <description>Covers the origins, purpose, and practical considerations of structs in C and C&#43;&#43;.</description>
    </item>
    <item>
      <title>What Is a Function Pointer?</title>
      <link>https://www.333rd.net/en/posts/read/function-pointers/</link>
      <pubDate>Wed, 23 Feb 2022 01:20:56 +0800</pubDate>
      <guid>https://www.333rd.net/en/posts/read/function-pointers/</guid>
      <description>This article explains what a function pointer is and touches on callback functions, one of its primary applications.</description>
    </item>
    <item>
      <title>The yield Keyword in Python</title>
      <link>https://www.333rd.net/en/posts/read/python-yield-keyword/</link>
      <pubDate>Fri, 18 Feb 2022 17:21:59 +0800</pubDate>
      <guid>https://www.333rd.net/en/posts/read/python-yield-keyword/</guid>
      <description>This article explains the yield keyword in Python using plain language.</description>
    </item>
  </channel>
</rss>
