<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Cplusplus on Pi Stack</title>
    <link>https://www.pistack.xyz/tags/cplusplus/</link>
    <description>Recent content in Cplusplus on Pi Stack</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 21 Jun 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://www.pistack.xyz/tags/cplusplus/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Self-Hosted C&#43;&#43; Command-Line Argument Parsing: CLI11 vs cxxopts vs argparse vs docopt.cpp</title>
      <link>https://www.pistack.xyz/posts/2026-06-21-cpp-command-line-argument-parsing-cli11-cxxopts-argparse-docopt/</link>
      <pubDate>Sun, 21 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://www.pistack.xyz/posts/2026-06-21-cpp-command-line-argument-parsing-cli11-cxxopts-argparse-docopt/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;Every C++ program that takes user input from the terminal needs a way to parse command-line arguments. While you could manually iterate over &lt;code&gt;argv[]&lt;/code&gt; and handle &lt;code&gt;--flags&lt;/code&gt; with string comparisons, production-grade applications demand robust, type-safe, and maintainable argument parsing. Four standout open-source C++ libraries dominate the modern landscape: &lt;strong&gt;CLI11&lt;/strong&gt;, &lt;strong&gt;cxxopts&lt;/strong&gt;, &lt;strong&gt;argparse&lt;/strong&gt;, and &lt;strong&gt;docopt.cpp&lt;/strong&gt;. Each takes a fundamentally different approach — from declarative option definitions to self-documenting usage strings — and choosing the right one has significant implications for your codebase&amp;rsquo;s readability, compile times, and error handling.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Self-Hosted C&#43;&#43; Performance Profiling: Tracy vs Optick vs Remotery vs MicroProfile</title>
      <link>https://www.pistack.xyz/posts/2026-06-21-cpp-performance-profiling-tracy-optick-remotery-microprofile/</link>
      <pubDate>Sun, 21 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://www.pistack.xyz/posts/2026-06-21-cpp-performance-profiling-tracy-optick-remotery-microprofile/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;Finding performance bottlenecks in C++ applications often feels like detective work without the right tools. Printf-debugging with timestamps tells you &lt;em&gt;that&lt;/em&gt; something is slow but not &lt;em&gt;why&lt;/em&gt; — and it certainly cannot reveal cache misses, thread contention, or GPU pipeline stalls. Purpose-built profiling libraries instrument your code with lightweight markers, capture timing data across frames or requests, and present visual timelines that make bottlenecks immediately obvious.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Self-Hosted C&#43;&#43; Task Parallelism: Taskflow vs oneTBB vs BS::thread_pool</title>
      <link>https://www.pistack.xyz/posts/2026-06-21-cpp-task-parallelism-libraries-taskflow-onetbb-threadpool/</link>
      <pubDate>Sun, 21 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://www.pistack.xyz/posts/2026-06-21-cpp-task-parallelism-libraries-taskflow-onetbb-threadpool/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;Writing correct, efficient parallel C++ code remains one of the hardest challenges in systems programming. Raw &lt;code&gt;std::thread&lt;/code&gt; and manual mutex management lead to deadlocks, race conditions, and suboptimal CPU utilization. Modern task parallelism libraries abstract thread management behind high-level APIs — you describe &lt;em&gt;what&lt;/em&gt; work needs to be done and &lt;em&gt;which tasks depend on each other&lt;/em&gt;, while the runtime handles thread pools, work stealing, and load balancing automatically.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
