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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Ryo Suzuki
February 08, 2024
Programming
4
5.3k
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
8k
DojoCon2021-Siv3D
cpp
0
400
JSSST2021-Siv3D
cpp
1
960
CEDEC2020
cpp
54
45k
Other Decks in Programming
See All in Programming
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
3
410
CS教育のDX AIによる育成の効率化
niftycorp
PRO
0
150
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
160
「やめとこ」がなくなった — 1月にZennを始めて22本書いた AI共創開発のリアル
atani14
0
410
存在論的プログラミング: 時間と存在を記述する
koriym
2
160
エンジニアの「手元の自動化」を加速するn8n 2026.02.27
symy2co
0
170
GC言語のWasm化とComponent Modelサポートの実践と課題 - Scalaの場合
tanishiking
0
120
CSC307 Lecture 14
javiergs
PRO
0
480
ふつうの Rubyist、ちいさなデバイス、大きな一年
bash0c7
0
1.1k
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
1
160
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
670
それはエンジニアリングの糧である:AI開発のためにAIのOSSを開発する現場より / It serves as fuel for engineering: insights from the field of developing open-source AI for AI development.
nrslib
1
360
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
64
52k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
270
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
450
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
How to make the Groovebox
asonas
2
2k
Site-Speed That Sticks
csswizardry
13
1.1k
Optimizing for Happiness
mojombo
378
71k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
240
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
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 が、よりビジュアルに!