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
4.7k
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.4k
DojoCon2021-Siv3D
cpp
0
230
JSSST2021-Siv3D
cpp
1
680
CEDEC2020
cpp
54
37k
Other Decks in Programming
See All in Programming
2 週間で Twitter Bot を作ってみた
contour_gara
0
780
Fast JSX: Don't clone props object #28768
yossydev
1
190
Goのmultiple errorsについて (2024年4月版)
syumai
4
1.2k
AWS CDKコントリビュートTIPS / aws-cdk-contribution-tips
gotok365
4
400
Going beyond Apache Parquet's default settings
xhochy
0
130
Tailwind CSSを本気でカスタマイズする方法
fsubal
14
5.5k
dbtのドメイン分割による データ基盤の改善とDigdagとの連携
sakama
0
450
SwiftUIで使いやすいToastの作り方 / How to build a Toast system which is easy to use in SwiftUI
lovee
3
170
StoreKit2によるiOSのアプリ内課金のリニューアル
kangnux
0
130
Exploring the Implementation of “t.Run”, “t.Parallel”, and “t.Cleanup”
akarin
1
130
大規模Reactアプリのリアーキテクチャ~8万行のTanStack Query移行の軌跡~
kj455
4
1k
Documentation for users with AsciiDoc and Antora
ahus1
0
370
Featured
See All Featured
Being A Developer After 40
akosma
67
580k
Scaling GitHub
holman
457
140k
Optimizing for Happiness
mojombo
370
69k
What's in a price? How to price your products and services
michaelherold
238
11k
The Illustrated Children's Guide to Kubernetes
chrisshort
32
46k
The Art of Programming - Codeland 2020
erikaheidi
43
12k
Code Reviewing Like a Champion
maltzj
515
39k
Automating Front-end Workflow
addyosmani
1357
200k
Faster Mobile Websites
deanohume
300
30k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
The Power of CSS Pseudo Elements
geoffreycrofte
62
5k
Designing for humans not robots
tammielis
247
25k
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 が、よりビジュアルに!