Microsoftは「Visual Studio 2019 バージョン16.8」の一般提供を開始した。Git管理やC++対応、IntelliCode、.NET、XAML、Webツールなどに対して、多くの機能強化を施した。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Microsoftは2020年11月10日(米国時間)、統合開発環境(IDE)の最新版「Visual Studio 2019 バージョン16.8」の一般提供を開始した。Git管理やC++対応、IntelliCode、.NET、XAML、Webツールなどに対して、多くの機能強化を施した。主な改良点は次の通り。
デフォルトのソース管理プロバイダーを、TFVC(Team Foundation Version Control)からGitへと変更した。[Git]メニューからリポジトリを作成、複製したり、開いたりできる。統合されたGitツールウィンドウを使って、コード変更のコミットやプッシュ、ブランチの管理、リモートリポジトリの最新状態の維持、マージの衝突の解決などができる。
C++の次期標準である「C++20」対応も進んだ。「/std:c++latest」ヘッダを用いることで、C++20の主要機能を全て利用できる。
コンパイラや標準ライブラリ、IDEを改善しており、例えば同じプロジェクトで「モジュール」「コルーティン」、一部の「範囲」を使用できる。
C++20コルーティンを「/std:c++latest」と「<coroutine>」ヘッダでサポートした。従来の動作は「<experimental/coroutine>」と「/await switch」でサポートしていた。ヘッダユニットと実験的なMSBuildのサポートによって、モジュールの依存関係を自動的に解決できるようになった。
C++の範囲ベースのアルゴリズムは大部分がサポートされているものの、範囲関連の全機能が利用できるまでには至っていない。
IntelliSenseも、C++20の「<concepts>」ヘッダと「<ranges>」ヘッダ、概念の定義の名前変更、参照をサポートするようになった。
Standard Template Library(STL)もC++20範囲機能の多くをサポートした。STLの他の機能強化としては、「std::atomic_ref」「std::midpoint and std::lerp」「std::execution::unseq」の完全なサポートや、「std::reverse_copy」の最適化などがある。
条件付きのトリビアルな特殊メンバ関数もMicrosoft Visual C++(MSVC)でサポートされるようになった。
C対応も改善した。C11とC17の全ての必須機能は、「/std:c11」スイッチと「/std:c17」スイッチを使うことで対応できる。これらの機能には次の内用が含まれる。
なお、オプション機能はサポートされていない。
C++を用いた開発の生産性を高める多数の改善を施した。
マルチスレッドでのpdb(プログラムデータベース)の作成により、「/debug:full」リンクのパフォーマンスが向上した。幾つかの大規模なアプリケーションや大規模なゲーム開発(AAAランク)では、リンクが2〜4倍高速になっている。
Visual Studioに付属するCMakeのバージョンがCMake 3.18にアップグレードされた。これにより、CMakeの新しいプロファイリング機能が利用できるようになった。
Visual StudioからリモートLinuxシステムやWSL上で、Linuxコアダンプを直接デバッグできるようになった。
Linuxプロジェクトで見つからないビルドツールがある場合、ツールバーに警告が表示されて、不足しているツールがエラー一覧に明記されるようになった。
加えて、Visual Studioデバッガはchar8_t をサポートした。
コードをエディタに入力する際にリンターと修正を使用できるようになった。算術オーバーフローや初期化されていないローカル変数、整数除算の結果をfloatに変換するといった警告や修正を取得できるようになった。
Copyright © ITmedia, Inc. All Rights Reserved.