ブログ 約3分

書評『C++17 In Detail』

Share this article
書評『C++17 In Detail』

C++はその誕生以来、継続的に進化し、C with Classesから新しい標準の登場まで、多くの大きなマイルストーンを通過してきました。1991年から2011年まで、言語はゆっくりと進化し、その進化はSTLやBoostのようなライブラリからもたらされました。しかし、2011年以降、C++11、C++14、C++17、そして今後のC++20により、多くの機能が標準に追加されました。最近、C++コミュニティは、既存のコードベースをモダナイズするために新しい標準の使用を推進しています。 Bartłomiej Filipek は、C++コミュニティで最も活発なブロガーの一人であり、新しい標準の普及に貢献しています。彼はC++17標準の機能についての素晴らしい本を執筆しており、ここではその本の簡単なレビューをお届けします。 実践的なアプローチ コンピュータサイエンスの世界には、主に学生向けの学術書が多くあり、また製品開発時の実際の問題を解決する方法についてのアドバイスを必要とする開発者向けの本もあります。この本はコーディングを通じて学べます。実際、ソースコードを含まないページはごくわずかで、すべての説明が少なくとも1つのコードサンプルで実証されています。コードサンプルは非常によく整形されており、読みやすくクリーンです。

著者はまた、各機能のコンパイラサポートなど、実践的な情報も豊富に提供しています。

最初から全体像を把握できる:

一般的に、本の内容を知るには、目次を見て序文を読めばよいものです。しかし、多くの場合、それだけでは本の目的を明確に理解するには不十分です。この本の興味深い点は、本の内容を明確に説明する4ページの「クイックオーバービュー」セクションがあることです。 新しい言語機能の解明: この本は、セクションごとにグループ化された、ほぼすべての新しいC++17機能をカバーしています。一部の機能は理解が難しいものの、Bartłomiej Filipekは「シンプルに保つ」アプローチを採用し、すべての機能がシンプルな例を使って非常によく説明されています。例えば、新しいテンプレート機能のセクションには次のものが含まれます。

  • クラステンプレートのテンプレート引数推論
  • template<auto>
  • fold式
  • if constexpr — C++のコンパイル時if!
  • その他の小規模で詳細な改善と修正

説明とコードサンプルの明確さに感銘を受けるでしょう。初心者でも、すべてのC++開発者がこれらの新機能の目的を理解できます。 新しい標準ライブラリ機能の解明 朗報は、標準ライブラリが新しい標準ごとに進化し、多くの興味深い新機能が追加されることです。この本でカバーされているC++17標準ライブラリの機能は次のとおりです。

  • std::optionalでnull許容型を表現する方法。
  • タグ付き共用体とは何か?そして、なぜstd::variantの形で型安全な共用体が必要なのか?
  • std::anyで任意の型を表現する方法。
  • string_viewを使用して、アプリケーションを壊さずにパフォーマンスを向上させる方法。
  • 標準ライブラリで利用できる新しい文字列操作。
  • 標準ライブラリを使用してファイルシステムを操作する方法。
  • 並列アルゴリズムとは何か。

各機能は多くのコードサンプルを使って詳細に説明されています。そして興味深いことに、著者はパフォーマンスとメモリの考慮事項についても触れ、機能がパフォーマンスとメモリ使用量にどのように影響するかを説明しています。

さらなる例とユースケース

本の終わりでは、他のいくつかの興味深い問題が提示されており、著者は多くのソリューションを提示し、新しい標準が古い機能よりもどのように優れてそれらを解決するかを説明しています。 結論: この本を読むと、著者が実際の問題を解決するために多くのC++プロジェクトに取り組んできたプログラマーであることが明らかであり、それがこの本の実践的なアプローチを説明しています。新しいC++17標準を習得したいすべての開発者にこの本をお勧めします。この本はLeanpubで入手でき、私たちのブログの読者は次のクーポンリンクを使用して約15%割引で購入できます。 https://leanpub.com/cpp17indetail/c/codergears

Share this article