ゲーム開発者のための C++17〜C++23 技術書典 17 Ver.

ゲーム開発者のための C++17〜C++23 技術書典 17 Ver.

◆ 内容 本書は、ゲーム開発者カンファレンス CEDEC 2024(2024 年 8 月開催)において筆者らが行った講演 「ゲーム開発者のための C++17~C++23, 近年のC++規格策定の動向」 で取り上げた C++17~C++23 機能を解説し、説明や項目、サンプルを加筆した本です。CEDEC ではスライドの面積の都合で include や詳細な実装を省略していたコードも、なるべく完全な形で掲載しています。 なお、前作にあたる「ゲーム開発者のための C++11〜C++20 技術書典 10 Ver.」(https://zenn.dev/tetsurom/books/cpp11-cpp20-for-game-developers)とは、少数の例外を除いて内容の重複がないようにしています。 実用フェーズに入ってきたC++20までの内容については、こちらもご参照ください。 ◆ 注意 本書は 2024 年 11 月の「技術書典 17」で販売された PDF 書籍・紙書籍(https://techbookfest.org/product/1p61X6cAyA7aVThMuM3sj6)と同一の内容です。 必要に応じて改訂やマイナーアップデートを行います。 ◆ 対象読者 ・モダン C++ にキャッチアップしたい方 ・C++17~C++23 の新機能をサンプルで学びたい方 ◆ 著者 ・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/) を引用している部分があります。 しかしながら本書の内容に関しては一切の責任は著者陣にあります。万が一わかりにくい点や改善点がございましたら、巻末の連絡先より著者へご一報ください。

Chapters
Chapter 01無料公開

size_t 型を表現するリテラルを活用しよう

Chapter 02無料公開

ヘッダの有無を調べたいときは __has_include を使おう

Chapter 03無料公開

状態をもたない関数オブジェクトの operator() をstaticにしよう

Chapter 04無料公開

コンストラクタに [[nodiscard]] を指定しよう

Chapter 05無料公開

範囲for文における一時オブジェクトの寿命に気を付けよう

Chapter 06

関数の引数をコンパイル時にチェックする方法を知ろう

Chapter 07

標準コンセプトを活用しよう

Chapter 08

制約を使ったときの オーバーロード解決ルールを知ろう

Chapter 09

列挙型から整数型への変換に std::to_underlying() を使おう

Chapter 10

ある文字や文字列が含まれているかを .contains(x) で調べよう

Chapter 11

.resize_and_overwrite() で std::string のコストをさらに抑えよう

Chapter 12

符号無し整数型と符号付き整数型の値の比較を安全に行う方法を知ろう

Chapter 13

std::optional::value_or() での不要なコストに気を付けよう

Chapter 14

std::optional に追加されたモナディックな操作を知ろう

Chapter 15

std::optional で不足するなら std::expected を使おう

Chapter 16

配列が特定の並びで開始/終了しているかを調べる方法を知ろう

Chapter 17

連続するメモリの範囲は std::span で表現しよう

Chapter 18

1次元配列を多次元配列のように扱いたいときは std::mdspan を使おう

Chapter 19

標準出力への出力には std::print() を使おう

Chapter 20

配列やコンテナの文字列化を std::format() に任せよう

Chapter 21

ユーザ定義型を std::format() に対応させる方法を知ろう

Chapter 22

ファイルを排他的に作成する方法を知ろう

Chapter 23

エラーの調査にスタックトレースオブジェクトを活用しよう

Chapter 24

C APIのリソース管理にもスマートポインタを使おう

Chapter 25

非推奨化/削除される機能に注意しよう

Chapter 26無料公開

Rangeアダプタを使ってみよう

Chapter 27

配列への逆順や部分アクセスに範囲for文を使おう

Chapter 28

ループでインデックス値が必要なときも範囲for文が使えることを知ろう

Chapter 29

複数のコンテナの要素を対応付けて扱うときも範囲for文を使おう

Chapter 30

指定した区切り文字での文字列分割には std::views::split() を使おう

Chapter 31

複数の集合の組み合わせを1つの範囲for文で簡単に生成しよう

Chapter 32

単調増加や繰り返しのRangeを手軽に作成する方法を知ろう

Chapter 33

集合を等サイズのグループに分割するときは std::views::chunk() を使おう

Chapter 34

1要素ずつずらしながらグループを作るときは std::views::slide() を使おう

Chapter 35

タプルを持つコンテナの範囲for文では必要なメンバアクセスだけ抽出しよう

Chapter 36

C++の新しい規格が決まる過程

Chapter 37

最新のC++標準化の状況を調べる方法

Chapter 38

ネットワーク機能と非同期処理の紆余曲折

Chapter 39

契約プログラミング導入はどうなっている?

Chapter 40

パターンマッチング導入はどうなっている?

Chapter 41

リフレクション導入はどうなっている?

Chapter 42

ゲーム業界からC++標準化委員会への提言

Author
Tetsuro Matsumura
Topics
公開
文章量
76,400
価格
1,000