Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
tfcon-2022-cpp
Search
Ryo Suzuki
May 14, 2022
Technology
5
8k
tfcon-2022-cpp
TechFeed Conference 2022「最近の C++ (2022 年)」
発表者:
https://twitter.com/Reputeless
Ryo Suzuki
May 14, 2022
Tweet
Share
More Decks by Ryo Suzuki
See All by Ryo Suzuki
C++ MIX #9
cpp
4
5.3k
DojoCon2021-Siv3D
cpp
0
380
JSSST2021-Siv3D
cpp
1
910
CEDEC2020
cpp
54
44k
Other Decks in Technology
See All in Technology
BiDiってなんだ?
tomorrowkey
2
490
「AIでできますか?」から「Agentを作ってみました」へ ~「理論上わかる」と「やってみる」の隔たりを埋める方法
applism118
8
5.9k
AI開発の落とし穴 〜馬には乗ってみよAIには添うてみよ〜
sansantech
PRO
9
4.7k
Exadata Database Service ソフトウェアのアップデートとアップグレードの概要
oracle4engineer
PRO
1
1.2k
習慣とAIと環境 — 技術探求を続ける3つの鍵
azukiazusa1
3
790
BPaaSオペレーション・kubell社内 n8n活用による効率化検証事例紹介
kubell_hr
0
320
Hardware/Software Co-design: Motivations and reflections with respect to security
bcantrill
1
260
CodeRabbit CLI + Claude Codeの連携について
oikon48
1
670
The Engineer with a Three-Year Cycle - 2
e99h2121
0
190
2026年はチャンキングを極める!
shibuiwilliam
7
1.3k
「全社導入」は結果。1人の熱狂が組織に伝播したmikanのn8n活用
sota_mikami
0
540
Amazon Bedrock AgentCore 認証・認可入門
hironobuiga
1
290
Featured
See All Featured
30 Presentation Tips
portentint
PRO
1
190
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
First, design no harm
axbom
PRO
2
1.1k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
430
Chasing Engaging Ingredients in Design
codingconduct
0
110
Statistics for Hackers
jakevdp
799
230k
Agile that works and the tools we love
rasmusluckow
331
21k
RailsConf 2023
tenderlove
30
1.3k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
130
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.9k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
[SF Ruby Conf 2025] Rails X
palkan
0
720
Transcript
鈴木 遼 (Siv3D) 最近の C++ (2022 年) 5 分でわかる C++
のトレンド 1
発表者プロフィール 鈴木 遼 • C++ ゲーム・アプリ開発フレームワーク Siv3D の作者 • C++
プログラミング教室を運営 / 早稲田・上智・駒澤大学で講義 • C++ に関する商業出版 / 技術書典出展 / 技術発表
身近なところに C++ • OS (Windows, Android, macOS, iOS) • Web
ブラウザ (Google Chrome, Firefox, Safari) • コンピュータグラフィックス (Photoshop, CAD ソフト) • オフィススイート (Microsoft Office, LibreOffice) • ゲームエンジン (Unreal Engine, Unity, Godot) • コンシューマゲーム / モバイルゲーム • Web サービスのバックエンド (Google, YouTube, Facebook, Amazon) • 組み込み / ロボット / 自動運転車 • 金融 (C++ 作者 Bjarne Stroustrup は、現在モルガン・スタンレーの Technical Fellow) • プログラミング言語コンパイラ / 仮想マシン
競技プログラミングのブームで C++ 学習者が増加 • AtCoder などの競技プログラミング(競プロ)に挑戦する人が増えている • 競プロは歴史的に C++ がデファクトスタンダード
• 中高生が目標とする、日本情報オリンピック (JOI) / 国際情報オリンピック (IOI) は C++ を使うルールになっている • 競プロに関する書籍の多くが C++ を前提に書かれている
便利なオンライン C++ コンパイラが登場 • Web ページ上で C++ コードを書いて実行結果を確認できるサービスが発展 • 複数のコンパイラの種類やバージョン間の比較・検証が容易に
Compiler Explorer • 各種コンパイラ (GCC, Clang, MSVC など) での コード実行結果、生成されるアセンブリを出力 • 代表的な (非標準) ライブラリも収録 Wandbox • 国産の C++ オンラインコンパイラ • コードの実行結果を表示。API も提供
静的コード解析ツールが進化 • 静的コード解析ツールの性能が向上し、C++ の様々な間違い / 非効率を、 実行前に検出できるようになってきた GCC や Clang
の静的解析機能 Visual Studio • エディタ上に情報を表示 PVS-Studio • ヒューリスティック解析による typo の検出にも強い
C++ Core Guidelines が整備 • C++ プログラマが統一的で優れたモダン C++ を書くためのガイドライン •
2015 年に初公開 • 現在もアクティブにメンテナンスされ 約 500 項目に • 各ガイドラインはルール、理由、サンプルコード、代替案や例外などで構成 • 『Effective C++』や『C++ Coding Standards』の現代版 • ガイドラインの大半は、静的解析ツールでの検証ができるようデザイン • (例 1) C.47: メンバー変数は宣言順のとおりに定義、初期化する • (例 2) ES.86: ループ変数を for 文の本体で変更することを避ける
C++ の規格更新と主要コンパイラの対応状況 • 主要コンパイラ (GCC, Clang, MSVC) は、ほぼ対応完了。 業務での活用事例も増えている •
MSVC が一番乗りで対応完了、GCC, Clang も大部分の機能に対応 • 一部の機能が、最新のコンパイラにおいて先取りで使える 2016 2017 2018 2019 2020 2021 2022 2023 2024 C++17 発行 主要コンパイラが C++17 対応を実装 C++20 発行 主要コンパイラが C++20 対応を実装 C++23 発行 主要コンパイラが C++23 対応を実装 C++17 C++20 C++23
C++17 の注目機能 • ファイルやディレクトリの操作に関する ライブラリ • 無効値を表現できる 型 • Java
の や Haskell の に相当 • 型安全に共用体 ( ) を表現できる 型 • Tuple-like な値を分解して、複数の変数にバインドできる構造化束縛 • 戻り値の無視時に、コンパイラに警告を出させる 属性 • 所有権を持たない文字列クラス を返す関数
C++20 の注目機能 • ヘッダを置き換える Modules • テンプレートの型制約を柔軟かつ簡潔に記述できる Concepts • Python
風のテキストフォーマット • 三方比較演算子 <=> と、それによる比較演算定義の簡略化(自動化) • コルーチン用の文法 • コンパイル時計算できる操作の拡大(ソートや動的配列も に) • ビット演算に関する標準ライブラリ関数の追加
C++23 の注目機能 (予定) • のように添字演算子に複数の引数を渡せるように • スタックトレースに関する情報を取得する ライブラリ • 標準ライブラリが
Modules に対応 • の代わりに ですべての標準ライブラリを使用可能 • の進化版
C++ 最新情報はどこで手に入る? 日本語 • cpprefjp • cppmap • C++ Twitter
コミュニティ 英語 • Standard C++ Foundation • cppreference.com • reddit [r/cpp] • hacking C++