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
C++ MIX #9
Search
Ryo Suzuki
February 08, 2024
Programming
5.4k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
C++ MIX #9
「C++ 開発が少し便利になる、最近の Visual Studio の機能」C++ MIX #9
Ryo Suzuki
February 08, 2024
More Decks by Ryo Suzuki
See All by Ryo Suzuki
tfcon-2022-cpp
cpp
5
8.1k
DojoCon2021-Siv3D
cpp
0
420
JSSST2021-Siv3D
cpp
1
1k
CEDEC2020
cpp
54
46k
Other Decks in Programming
See All in Programming
スマートグラスで並列バイブコーディング
hyshu
0
280
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
7
5.3k
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
4.9k
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
140
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
390
霧の中の代数的エフェクト
funnyycat
1
320
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
150
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
4
1.6k
関数型プログラミングのメリットって何だろう?
wanko_it
0
150
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
350
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
260
エージェンティックRAGにAWSで入門しよう!
har1101
9
1.9k
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Embracing the Ebb and Flow
colly
88
5.1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
320
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
2
320
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
GitHub's CSS Performance
jonrohan
1033
470k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
How to build a perfect <img>
jonoalderson
1
5.8k
Transcript
C++ 開発が少し便利になる、 最近の Visual Studio の機能 鈴木 遼 2024-02-09 C++
MIX #9
• Visual Studio は頻繁にアップデート(VS 2022 17.0 → 現在 17.8) •
利用者コミュニティでの投票 (vote) にもとづく、ユーザビリティに直結 するアップデート・拡張機能も増えている • 新しい機能に気付かないままの使い方をしていませんか? • 今日から試せる、最近の Visual Studio の新機能・拡張機能を 7 つ紹介 このスライドの内容
1. コーディング用の合字フォント
• 日本語環境の VS のデフォルトのフォントは、いまだに MS ゴシック • 英語環境では、VS 2022 から
Cascadia (カスケーディア)がデフォルト • → MS が 2019 年にリリースしたフォント。合字(リガチャ)の有無に応 じて Cascadia Code と Cascadia Mono がある Cascadia Code Abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890.:,; ' " (!?) +-*/= 1. コーディング用の合字フォント (1)
• 合字は、特定の文字の組を、洗練された 1 つのグリフで表現する • 人によって好みは分かれるが、元の文字数の広さのまま 1 グリフを大きく 表現できるため、可読性が向上すると考えられている 通常
合字 1. コーディング用の合字フォント (2)
• Cascadia は日本語環境の Visual Studio 2022 に含まれている • メニュー >
ツール > オプション > 環境 > フォントおよび色 から変更 1. コーディング用の合字フォント (3)
2. ドキュメント コメントの入力補助
• 「///」を入力すると、Doxygen(ドキシジェン)や XML スタイルの ドキュメント コメントの入力が補助される • 引数や戻り値、関数の説明を記述するためのテンプレが自動的に挿入 2. ドキュメント
コメントの入力補助 (1)
• XML スタイルと Doxygen コメント、どちらの内容もツールチップによる ヒント表示に反映されるようになった(以前は XML のみ) 2. ドキュメント
コメントの入力補助 (2)
• メニュー > ツール > オプション > テキストエディター > C/C++
> コー ドスタイル > 全般 から、Doxygen または XML スタイルのコメント入力 補助を有効化 2. ドキュメント コメントの入力補助 (3)
3. コンパイラ メッセージの色分け
• C++ のコンパイルエラーや警告は行数が多く、重要な情報を見つけにくい • error や warning などのキーワードに反応して行を色付けする拡張機能 3. コンパイラメッセージの色分け
(1)
• 拡張機能 VSColorOutput64 を、Visual Studio Marketplace または Visual Studio の拡張機能マネージャーからインストール
• インストール後、メニュー > ツール > オプション > VSColorOutput64 から設定画面を開き、各項目の色を変更できる 3. コンパイラメッセージの色分け (2)
4. スペルチェッカー
• コードやコメントに含まれる英単語のスペルミスを波線で表示 • 修正候補から選択して、同じ名前を一括修正することが可能 4. スペルチェッカー (1)
• VS 2022 17.5 から標準搭載。メニュー > 編集 > 詳細 >
スペルチェッカー を切り替える から有効無効を切り替えられる • メインツールバー上のボタンからも切り替えられる 4. スペルチェッカー (2)
5. クラスのメモリレイアウト可視化
• 実装したクラスや union, ビットフィールドが、期待したメモリレイアウト になっているかを確認するのは手間がかかる • クラスのサイズとアライメントがツールチップ上に表示 • メンバのオフセットを可視化できるツールが追加 5.
クラスのメモリレイアウト可視化 (1)
struct Object2 { int b; short a; short c; double
d; }; struct Object1 { short a; int b; short c; double d; }; 5. クラスのメモリレイアウト可視化 (2)
struct Float4 { float x, y, z, w; }; struct
alignas(16) Float4A { float x, y, z, w; }; 5. クラスのメモリレイアウト可視化 (3)
union FloatUint { float f; unsigned i; }; struct HeightFieldPixel
{ int height : 16; unsigned materialIndex0 : 7; unsigned tessellationFlag : 1; unsigned materialIndex1 : 7; unsigned unused : 1; }; 5. クラスのメモリレイアウト可視化 (4)
6. 適切なインデントでのコピー
• コードをコピーして外部アプリ(Slack や Teams)に貼り付けると、 インデントがそのままコピーされて不便だった 6. 適切なインデントでのコピー (1)
• インデントの基準位置から範囲選択してコピーすると、 以降のインデントを適切に除去してコードがコピーされるように 6. 適切なインデントでのコピー (2)
7. 画像ファイルのパスをプレビュー
• 画像処理や、ゲーム・アプリのプログラムで、 画像ファイルのパスや画像の URL をハードコードすることがある • どのような画像を指しているかは、画像ファイルを開かないとわからない 7. 画像ファイルのパスをプレビュー (1)
• 拡張機能 Image Preview をインストールすると、画像のパスを指す文字 列・コメントへのマウスオーバーで、実際の画像とそのサイズを表示 現在は拡張機能だが、VS の公式機能 になることが計画されている。 7.
画像ファイルのパスをプレビュー (2)
まとめ 紹介した機能 対応バージョン 1. コーディング用の合字フォント VS 2022 2. ドキュメント コメントの入力補助
VS 2019 16.6 3. コンパイラ メッセージの色分け VS 2019- 拡張機能 4. スペルチェッカー VS 2022 17.5 5. クラスのメモリレイアウト可視化 VS 2022 17.8 (レイアウト: 17.9) 6. 適切なインデントでのコピー VS 2022 17.7 7. 画像ファイルのパスをプレビュー VS 2022 拡張機能 Visual Studio が、よりビジュアルに!