Visual Studio 2019 v16.10 and v16.11 Preview 1

Visual Studio 2019 v16.10 and v16.11 Preview 1 are Available Today! | Visual Studio Blog

Buildにあわせてリリースされました。DEEPLベースで雑訳。

Visual Studio 2019 v16.10で何が新しいのか

この度、Visual Studio 2019 v16.10 GAとv16.11 preview 1がリリースされました。 このリリースにより、私たちのテーマである開発者の生産性と利便性が、Visual Studioユーザーに一般的に利用できるようになりました。C++20の機能を追加し、Gitの統合を改善し、プロファイリングツールを改善し、生産性を加速する機能を多数搭載しています。

最新のVisual Studioリリースをダウンロードして、16.10の新機能をお試しください。また、Developer Communityでは、皆様からのフィードバックや交流をお待ちしています。

C++

当社のコンパイラと STL は、最新の C++20 規格に対応しています。16.10 には、カレンダー、タイムゾーン、 といった待望の機能が搭載されています。これらの機能はすべて、/std:c++latest スイッチで利用できます。一部の機能は、ABI と互換性のない方法で欠陥レポート(ISO C++20 のバグ修正)によって修正されることが予想されるため、/std:c++20 スイッチはまだ利用できません(詳細については、Microsoft/STL Issue #1814 を参照してください)。

<format>は、fmtlibをベースにした、テキストフォーマットのための新しい機能です。iostreamsやprintfファミリーに代わる高速で安全な機能を提供します。

auto version = 20;
std::format(“STL is now C++{} feature-complete!”, version);

カレンダーとタイムゾーンは、既存の機能を拡張したものです。これらの機能は、型安全でタイムゾーンを意識した方法で、日付と時刻を表現し、操作するための機能を提供します。

std::chrono::year_month_day world_bee_day = May/20d/2021y
std::format("Buzz buzz on %F!”, world_bee_day);

さらに、モジュール、レンジ、コンセプトのインテリセンスを改善しました。Go-to-definitionは、モジュール自体と、モジュールからインポートされた定義の両方で動作します。レンジはコンパイラにとって処理が難しいことで知られていますが、インテリセンスはレンジの補完を行うことができます。また、コンセプト内で定義された名前の補完も可能です。

Visual Studio now has completions for Ranges.

LLVM OpenMPランタイムが、x64に加えて、x86とARM64にも対応しました。対象とするには、/openmp:llvm スイッチを渡します

C++20 スタイルのコルーチンを使用したいが、C++11 または C++14 をターゲットにしている場合は、/await:strict スイッチを使用して望ましい動作を得られるようになりました。

coroutineのデバッグと可視化を改善しました。特に、std::coroutine_handleの可視化では、オリジナルのコルーチン関数名とシグネチャ、そして現在のサスペンドポイントが表示されるようになりました。

Coroutine debugging and visualization has been improved.

CMake サポートを使用している場合は、CMakeSettings.json ではなく、CMakePresets を使用して設定を指定できるようになりました。このフォーマットは、Visual Studio、Visual Studio Code、およびこの新しい標準をサポートするその他のツールで一貫しています。

Continue reading Visual Studio 2019 v16.10 and v16.11 Preview 1

.NET 6 Preview4関連リンクまとめ

Microsoft Build 2021まとめ関連