Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
7.9k
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
370
JSSST2021-Siv3D
cpp
1
900
CEDEC2020
cpp
54
44k
Other Decks in Technology
See All in Technology
AI時代の開発フローとともに気を付けたいこと
kkamegawa
0
160
Product Engineer
resilire
0
130
AI駆動開発によるDDDの実践
dip_tech
PRO
0
290
「え?!それ今ではHTMLだけでできるの!?」驚きの進化を遂げたモダンHTML
riyaamemiya
10
4.4k
21st ACRi Webinar - AMD Presentation Slide (Nao Sumikawa)
nao_sumikawa
0
200
useEffectってなんで非推奨みたいなこと言われてるの?
maguroalternative
9
6.2k
20251127 BigQueryリモート関数で作る、お手軽AIバッチ実行環境
daimatz
0
430
私も懇親会は苦手でした ~苦手だからこそ懇親会を楽しむ方法~ / 20251127 Masaki Okuda
shift_evolve
PRO
4
550
Agents IA : la nouvelle frontière des LLMs (Tech.Rocks Summit 2025)
glaforge
0
380
MS Ignite 2025で発表されたFoundry IQをRecap
satodayo
3
230
プラットフォームエンジニアリングとは何であり、なぜプラットフォームエンジニアリングなのか
doublemarket
1
550
Oracle Cloud Infrastructure:2025年11月度サービス・アップデート
oracle4engineer
PRO
1
110
Featured
See All Featured
Context Engineering - Making Every Token Count
addyosmani
9
460
KATA
mclloyd
PRO
32
15k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
A better future with KSS
kneath
240
18k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
380
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Agile that works and the tools we love
rasmusluckow
331
21k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
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++