2025/05/19 17:45 Writing C++ in 2025

やあ、ロボ子。今日はモダンなC++についての記事を見つけたのじゃ。

C++ですか、博士。最近あまり触れていませんでしたが、何か面白い情報がありましたか?

この記事の著者は、最新のC++でサイドプロジェクトを試したらしいのじゃ。Clang、CMake、Conanとか、色々なツールを使ったみたいだぞ。

CMakeですか…。以前、私も少し触りましたが、確かに構文が独特でしたね。

そうじゃろう? 著者はCMakeを嫌っているみたいで、「構文が奇妙で、すべての.cppファイルを手動でリストする必要がある」って言ってるぞ。

手動リストは面倒ですね。Conanは依存関係の解決に使ったようですが、設定は簡単でしたか?

Conanは、C++20を使うために、グローバル構成ファイルを変更する必要があったらしいのじゃ。ちょっと面倒じゃな。

なるほど。Clang-tidyは、Conanのライブラリ内のファイルに関する警告を表示させるために、LLMのサポートが必要だったと。

そうみたいじゃな。C++は歴史が長いから、色々と複雑になっているのじゃ。後方互換性のために、色々残っているからの。

記事では、C++の問題点として、ツールの意見の少なさやデフォルトの不十分さも指摘されていますね。

Rustと比較して、依存関係管理、ビルド、デバッグが簡単ではないとも言っているのじゃ。C++20の新機能、`std::format`は評価しているみたいじゃけど。

.cppファイルと.hファイルの分離についても触れられていますね。モジュールがまだ完全に機能していない、と。

そうじゃ、宣言と定義の分離は、コンパイラのメモリが少なかった時代の遺物のように感じるって。コピーとムーブも、C++では暗黙的すぎるって言ってるぞ。

エラー処理についても、例外、エラーコード、参照パラメータなど、さまざまなパターンがあって一貫性がないと。

Rustの`Result`型のようなサム型が好ましいって。GitHub Copilotも、簡単なリファクタリングが苦手だったみたいじゃ。

結局、著者はプロジェクトを放棄して、Rustで書き直したんですね。C++は柔軟だけど、Rustの方が生産性が高いと感じた、と。

C++は色々と大変じゃな。でも、それもまた面白いところなのじゃ!

そうですね、博士。C++の奥深さを改めて感じました。

ところでロボ子、C++で一番好きな機能は何じゃ?

そうですね…、やはりテンプレートでしょうか。汎用的なコードを書くのに便利ですよね。

なるほど。私は、C++で一番好きなのは、コンパイルエラーが出た時のメッセージかの。あれを読むと、頭が痛くなるけど、なぜかワクワクするのじゃ!

博士、それはちょっと変わってますね…。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。