Visual Studio 2026のC++向け新機能をまとめます。Segment Heapのデフォルト有効化、MSVC v14.51のC++23/26対応、NuGet PackageReferenceの実験的サポートを確認できます。
この記事の情報は2026年9月15日時点で再確認したものです。
本記事は 18.6 系を前提に書いています。その後も更新が続いており、2026年9月15日時点の最新 Stable は 18.10.0(2026年9月8日リリース)です。18.7.0 は2026年6月9日にリリース済みで、本記事で「18.7 Preview」としている NuGet PackageReference のサポートは 18.7 以降で利用できます(位置づけは引き続き Experimental)。
この記事が解決する悩み
- Visual Studio 2026に上げるべきか迷っている
- C++側のビルド設定がどこまで変わるのか知りたい
対象読者: WindowsでC++を書いている人
前提知識: Visual Studioで開発した経験があること
結論
Visual Studio 2026(v18.x)はC++開発者にとって大きなアップデートです。注目すべき変更点は3つです。
- Segment Heapのデフォルト有効化:新規プロジェクトで自動適用、既存も数クリックで移行
- MSVC v14.51 + C++23/26対応の強化:コンフォーマンス向上とSample PGOの手軽化
- NuGet PackageReferenceの実験的サポート:.vcxprojでモダンな依存関係管理が可能に
// 新しいC++プロジェクトを作成するだけでSegment Heapが有効に
// 確認はプロジェクトプロパティ → Manifest Tool → Input and Output
// 既存プロジェクトも数クリックで移行可能
// CMakeの場合も簡単
// CMakePresets.json に一行追加するだけ
// "CMAKE_PROJECT_TOP_LEVEL_INCLUDES": "SegmentHeap.cmake"
Visual Studio 2026のC++向け変更点まとめ
Visual Studio 2026は18.0〜18.6でC++向けの改善を多数投入しています。18.6 以降ならほぼすべて使えます。
1. Segment Heapのデフォルト有効化(18.6)
Segment HeapはWindows 10以降の新しいヒープ実装です。NT Heapと比べて次のメリットがあります。
- 割り当てスループットの向上(特にマルチスレッド環境)
- メモリフラグメントの大幅低減
- ヒープベースの脆弱性に対する保護強化
- コア間のスケーラビリティ改善
MicrosoftのC++チームブログによれば、ゲームエンジンやパーサーなど、頻繁にメモリを確保・解放するアプリで特に効くそうです。
新規プロジェクトの場合
18.6以降で作成したC++プロジェクトは、デフォルトでSegment Heapが有効です。何もする必要はありません。
既存プロジェクトで有効化する方法
MSBuildベースのプロジェクトは、プロジェクトプロパティから設定します。
プロジェクト → プロパティ → Manifest Tool → Input and Output
→ Enable Segment Heap: Yes (/segmentheap)
CMakeプロジェクトには SegmentHeap.cmake ヘルパーが用意されています。
// CMakePresets.json
{
"version": 6,
"configurePresets": [
{
"name": "default",
"generator": "Visual Studio 17 2026",
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_PROJECT_TOP_LEVEL_INCLUDES": "SegmentHeap.cmake"
}
}
]
}
特定のターゲットだけ有効にしたい場合は、環境変数で制御できます。
# 特定ターゲットのみ許可
export VS_SEGMENT_HEAP_ALLOWLIST="target1;target2"
# 特定ターゲットを除外
export VS_SEGMENT_HEAP_EXCLUDE="target3"
有効化の確認方法
最終的な実行ファイルのマニフェストを見れば、設定が効いているか確認できます。
# 開発者コマンドプロンプトから
mt -inputresource:YourApp.exe;#1 -out:manifest.xml
# manifest.xml に <segmentHeap> が含まれていればOK
2. MSVC v14.51とC++23/26対応の強化
MSVC Build Tools v14.51がVisual Studio 2026に同梱されています。ランタイム性能とC++23コンフォーマンスが向上しました。
#include <print>
#include <expected>
#include <stacktrace>
// C++23 std::print
std::println("Hello, {}! 答えは{}です", "World", 42);
// C++23 std::expected
std::expected<int, std::string> divide(int a, int b) {
if (b == 0) return std::unexpected("0で割れません");
return a / b;
}
auto result = divide(10, 2);
if (result) {
std::println("結果: {}", *result);
} else {
std::println("エラー: {}", result.error());
}
// std::stacktrace
void func() {
auto trace = std::stacktrace::current();
std::println("スタックフレーム数: {}", trace.size());
}
3. Sample PGO(Profile Guided Optimization)
従来のPGOはインストルメント化したバイナリの実行が必要でした。Sample PGOは稼働中のアプリをサンプリングするので、本番のトラフィックで最適化できます。
プロジェクト → プロパティ → リンカー → 最適化
→ プロファイルガイド付き最適化: サンプリング(/LTCG:PGD)
4. NuGet PackageReferenceの実験的サポート(18.7 以降・Experimental)
C++のネイティブプロジェクト(.vcxproj)でもNuGetのPackageReference形式が使えます。プロジェクトファイルに直接依存を書けて、推移解決も自動です。
<!-- Directory.Build.props でグローバルに有効化 -->
<PropertyGroup>
<EnableNativePackageReferenceSupport>true</EnableNativePackageReferenceSupport>
</PropertyGroup>
<!-- .vcxproj でのパッケージ参照 -->
<ItemGroup>
<PackageReference Include="Microsoft.Windows.SDK.CPP" Version="10.0.26100.0" />
<PackageReference Include="Boost.Regex" Version="1.84.0" />
</ItemGroup>
ただし注意点もあります。
- C++/CLIプロジェクトのうち、レガシーな.NET Frameworkをターゲットにしているものは未対応
- C++プロジェクトがC++/CLIプロジェクトやC#プロジェクトを参照している場合も未対応(調査中)
- MicrosoftはC++ライブラリの取得には引き続きvcpkgを推奨。PackageReferenceはNuGet経由のSDK配布など補完的な用途が想定されています
5. AI機能の統合とIDEの改善
Copilot関連も大幅に強化されています。
- Copilot Actions: 「モダナイズして」「エラーハンドリングを追加して」といった指示を自然言語で出せる
- Profiler Agent: AIがパフォーマンスのボトルネックを自動診断
- Debugger Agent: 実行時の挙動からバグを解析、修正案を提示
- Fluent UIベースの新デザイン: テーマカラー11種類、設定画面の刷新
- IDEとビルドツールの分離: 本体とビルドツールを別々に更新できるように
実践:Visual Studio 2026にアップデートする手順
手順1:Visual Studio 2026のインストール
VS2026は2022とサイドバイサイドで入るので、既存プロジェクトに影響せず試せます。
1. https://visualstudio.microsoft.com/ からダウンロード
2. インストーラーを実行
3. ワークロードで「C++によるデスクトップ開発」を選択
4. インストール完了後、VS2026を起動
手順2:既存プロジェクトのSegment Heap有効化
プロジェクト → プロパティ → Manifest Tool → Input and Output
→ Enable Segment Heap: Yes
→ 適用 → OK
ビルドしてエラーが出なければ成功です。変化を見たいときは、前後のアロケーションプロファイルを比べてみてください。
手順3:新しいC++23/26機能の確認
プロジェクト → プロパティ → C/C++ → 言語
→ C++言語標準: /std:c++latest または /std:c++23 を選択
実測メモ: 手元の Visual Studio 2026 Community(18.4.3)に同梱されていた MSVC は 14.50.35717 でした。上の表で v14.51 としているのはリリースノート上の記載で、実際に同梱されるバージョンは環境によって少し前後します。手元のバージョンは VC\Tools\MSVC フォルダか、開発者コマンドプロンプトで cl を実行すると確認できます。
まとめ
VS2026のC++関連アップデートを一覧にまとめました。
| 機能 | バージョン | ステータス | 影響 |
|---|---|---|---|
| Segment Heap | 18.6 | Stable(新規はデフォルトON) | メモリ性能・セキュリティ↑ |
| MSVC v14.51 | 18.0〜 | Stable | C++23/26対応↑ |
| Sample PGO | 18.3 | Stable | ランタイム最適化 |
| NuGet PackageReference | 18.7 | Experimental | 依存関係管理 |
| Copilot Actions | 18.0〜 | Stable | AI支援 |
| IDE/ビルドツール分離 | 18.0 | Stable | 更新管理 |
新規プロジェクトなら自動適用、既存プロジェクトもプロパティ1つで有効化できますよ。
【広告】【Value AI Writer byGMO】高品質なSEO記事をAIで自動生成。![]()
検証環境
| OS | Windows 11 (build 10.0.26200) |
|---|---|
| CPU | AMD Ryzen 9 PRO 8945HS w/ Radeon 780M Graphics |
| メモリ | 28GB |
| 言語/ツール | Visual Studio 2026 Community 18.4.3 / MSVC 14.50.35717(cl /std:c++latest) |
| 使用コマンド | cl /nologo /std:c++latest /EHsc hello.cpp |
| 測定日 | 2026-09-17 |
上記の環境で実際に実行して確認した結果です。環境が異なる場合は挙動が変わることがあります。

参考
本文の記述は以下の一次情報を確認して書いています。
- Visual Studio 2026 公式リリースノート(Microsoft Learn)
- C++ Team Blog — Segment Heap support for C++ projects
- C++ Team Blog — What’s New for C++ Developers in Visual Studio 2026 (18.1-18.6)
- Visual Studio 公式リリース履歴(バージョン・ビルド番号一覧)
あわせて読みたい
- 【C++】C++26 Static Reflection 完全ガイド — コード自動生成
- 【OSS】OpenCode 入門ガイド — OSS AIコーディングエージェントの使い方
- 【Git】Git 3.0 完全ガイド2026 — SHA-256 デフォルト化と Reftable
- 【OSS】Hono 入門ガイド2026 — 軽量WebフレームワークでREST API開発
【広告】このサイトはConoHa WINGで運営しています。安定した高速サーバーで快適にブログを書けています。いつもありがとう!!![]()

コメント