ゲーム開発者のための C++11〜C++20 技術書典 10 Ver.
◆ 内容 本書は、2020 年 9 月に開催された CEDEC 2020 講演「ゲーム開発者のための C++11~C++20, 将来の C++ の展望」で取り上げた C++11~C++20 機能を解説し、説明や項目、サンプルを加筆した本です。 CEDEC ではスライドの面積の都合で include や詳細な実装が省略されていたコードも完全な形で掲載しています。 さらに付録として、2020 年 12 月時点での C++ 標準化委員会の議論の状況を反映し、C++23 に入ることが決まった / 入る見込みが高い 13 個の提案を先取りで解説しています。 ◆ 注意 本書は 2020 年 12 月の「技術書典 10」で販売された PDF 書籍・紙書籍(https://techbookfest.org/product/5738569643589632)と同一の内容です。 必要に応じて改訂やマイナーアップデートを行います。 ◆ 対象読者 ・モダン C++ にキャッチアップしたい方 ・C++11~C++20 の新機能をサンプルで学びたい方 ◆ C++20 対応コンパイラ(2021 年 1 月時点) ・Visual Studio 2019(/std:c++latest オプションを指定) ・Clang(-std=c++2a オプションを指定) ・GCC(-std=c++2a オプションを指定) オンラインコンパイラ(https://wandbox.org)を使うのが最も手軽です。 コンパイラによっては、本書で扱っている一部の機能(とくに C++20)が未実装の場合があります。 ◆ 著者 ・Ryo Suzuki(https://zenn.dev/reputeless) ・Tetsuro Matsumura(https://zenn.dev/tetsurom) ・Hiroaki Ando(https://zenn.dev/onihusube) ◆ 謝辞 本書の原案である CEDEC 講演スライドの作成にあたっては、高橋晶さん、川崎洋平さん、光成滋生さんに監修をいただきました。 また、記事の一部には著者らが参加する cpprefjp(https://cpprefjp.github.io/), cppmap(https://cppmap.github.io/)を引用している部分があります。 しかしながら本書の内容に関しては一切の責任は著者陣にあります。万が一わかりにくい点や改善点がございましたら、著者までご一報ください。
値を一定の範囲に収めるときは std::clamp() を使おう
標準ライブラリの数学定数を使おう
std::string に追加された便利な関数を知ろう
連想コンテナ内のキーの有無の確認を .contains() で明快にしよう
列挙型名が何度も登場するコードを using enum で短くしよう
コンテナから要素を削除する、一貫性のある方法を知ろう
変数未使用の警告を抑制する方法を知ろう
ビット操作のための便利な関数を使おう
配列にもコンテナにも使える、サイズ、イテレータ取得関数を使おう
ソースコード上の位置情報を手軽に扱おう
オブジェクトのバイト列は std::byte で表現しよう
範囲を 1 つの引数で渡すアルゴリズム関数を使おう
標準のファイルとディレクトリ操作を使おう
初期化付き条件分岐を使って、変数のスコープを狭くしよう
比較演算子の実装を楽にしよう
構造体のメンバを名前でわかりやすく初期化しよう
リテラル演算子を定義して定数を簡潔に書こう
柔軟になったラムダ式のキャプチャを活用しよう
複数の値は構造体や std::pair, std::tuple で返し、構造化束縛で受け取ろう
[[nodiscard]] で関数の使い間違いを防ごう
クラステンプレートのテンプレート引数推論を活用しよう
無効値を表現したいときに std::optional を使おう
型安全な共用体を std::variant で実現しよう
テンプレートの型に応じた処理には constexpr if を使おう
テンプレートパラメータにコンセプトで制約を加えよう
カスタマイゼーションポイントオブジェクト (CPO) を優先して使おう
文字列を std::string_view で受け渡ししよう
ポインタのバイト境界をコンパイラに伝えよう
配列要素の効率的なシフト操作を知ろう
非順序連想コンテナをもっと効率よく使おう
ステートレスなデータメンバのメモリ消費をゼロにしよう
分岐の起こりやすさをコンパイラに伝える方法を知ろう
数値 → 文字列の変換には std::to_chars() を使おう
文字列 → 数値の変換には std::from_chars() を使おう
洗練された文字列フォーマット機能を使おう
コンパイル時に実行できる標準ライブラリ関数の操作を知ろう
コンパイル時と実行時で処理を分ける方法を知ろう
新しいアロケータを知ろう
符号の有無の異なる整数型の比較に、専用の関数を使おう
連続するメモリの範囲を std::span で受け渡ししよう
ヘッダに代わるファイル分割の仕組み「モジュール」
中断と再開をサポートする関数「コルーチン」
次期規格 C++23 に入ることが決まった機能の紹介
C++23 入りが見込まれている機能の紹介
- 公開
- 本文更新
- 文章量
- 約80,768字
- 価格
- 1,000円