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
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
410
JSSST2021-Siv3D
cpp
1
990
CEDEC2020
cpp
54
45k
Other Decks in Programming
See All in Programming
AI時代の仕事技芸論 — ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ
kuranuki
1
450
LLM Plugin for Node-REDの利用方法と開発について
404background
0
130
開発体験を左右するライブラリの API 設計 - GraphQL スキーマ構築ライブラリから考える #tskaigi
izumin5210
2
1.2k
分析エージェント精度向上における データアナリストの役割
oura_shoya
0
130
バックエンドにElysiaJSを採用して気付いた、良い点・悪い点
wanko_it
1
190
These Five Tricks Can Make Your Apps Greener, Cheaper, & Nicer
hollycummins
0
240
CSC307 Lecture 17
javiergs
PRO
0
260
AI駆動開発勉強会 広島支部 第一回勉強会 AI駆動開発概要とワークショップ
hayatoshimiu
0
400
AIエージェントと協働するCLI開発 — BunとOpenClawで学んだこと
yoshikouki
1
220
Inside Stream API
skrb
1
250
Oxcを導入して開発体験が向上した話
yug1224
4
240
ReactとSvelteのその先、Ripple-TS / Beyond React and Svelte: Ripple-TS
ssssota
3
1.6k
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
370
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
380
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
330
Utilizing Notion as your number one productivity tool
mfonobong
4
310
Statistics for Hackers
jakevdp
799
230k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Claude Code のすすめ
schroneko
67
220k
Into the Great Unknown - MozCon
thekraken
41
2.5k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
710
Paper Plane
katiecoart
PRO
1
50k
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 が、よりビジュアルに!