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
4
5.2k
C++ MIX #9
「C++ 開発が少し便利になる、最近の Visual Studio の機能」C++ MIX #9
Ryo Suzuki
February 08, 2024
Tweet
Share
More Decks by Ryo Suzuki
See All by Ryo Suzuki
tfcon-2022-cpp
cpp
5
7.8k
DojoCon2021-Siv3D
cpp
0
350
JSSST2021-Siv3D
cpp
1
860
CEDEC2020
cpp
54
42k
Other Decks in Programming
See All in Programming
レトロゲームから学ぶ通信技術の歴史
kimkim0106
0
110
NPOでのDevinの活用
codeforeveryone
0
900
初学者でも今すぐできる、Claude Codeの生産性を10倍上げるTips
s4yuba
16
13k
バイブコーディング超えてバイブデプロイ〜CloudflareMCPで実現する、未来のアプリケーションデリバリー〜
azukiazusa1
0
330
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
twada
PRO
99
37k
ソフトウェア設計とAI技術の活用
masuda220
PRO
17
3.5k
商品比較サービス「マイベスト」における パーソナライズレコメンドの第一歩
ucchiii43
0
180
Hack Claude Code with Claude Code
choplin
7
2.5k
AIと”コードの評価関数”を共有する / Share the "code evaluation function" with AI
euglena1215
1
180
顧客の画像データをテラバイト単位で配信する 画像サーバを WebP にした際に起こった課題と その対応策 ~継続的な取り組みを添えて~
takutakahashi
4
1.3k
The Modern View Layer Rails Deserves: A Vision For 2025 And Beyond @ RailsConf 2025, Philadelphia, PA
marcoroth
2
730
Claude Code + Container Use と Cursor で作る ローカル並列開発環境のススメ / ccc local dev
kaelaela
12
7k
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
970
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Writing Fast Ruby
sferik
628
62k
How GitHub (no longer) Works
holman
314
140k
Navigating Team Friction
lara
187
15k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Testing 201, or: Great Expectations
jmmastey
43
7.6k
What's in a price? How to price your products and services
michaelherold
246
12k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
990
How STYLIGHT went responsive
nonsquared
100
5.6k
A Modern Web Designer's Workflow
chriscoyier
695
190k
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 が、よりビジュアルに!