Microsoft VisualStudioがC言語のサポートを強化

MicrosoftのVisualStudio IDEは、C11およびC17 C言語標準のサポートを追加し、IDEの以前のCの限定サポートを拡張しました。C11およびC17は、9月14日にリリースされたVisual Studio 2019 16.8 Preview3以降のサポート言語バージョンになります。

何年もの間、Visual StudioはCのサポートを、Cの拡張として構築されたC ++言語に必要なものに制限してきました。現在、準拠したトークンベースのプリプロセッサがコンパイラに追加されています。最新のISOC標準に準拠するために、2つのコンパイラスイッチ/std:c11  /std:c17が追加されました。

C11とC17の機能のようなサポートされている_PragmarestrictStatic_assert。IntelliSenseは.c、ソースファイルのファイル拡張子または/TCコンパイラスイッチを使用してCコードの構文の強調表示を有効にすることにより、これらの機能を操作できます。ただし、IntelliSenseの強調表示は現在、キーワードでのみ使用でき、標準ヘッダーで導入されたマクロでは使用できません。将来のリリースでこれが修正される予定です。

トークンベースの適合プリプロセッサが含まれているため、2つの新しいCコンパイラスイッチは/ Zc:preprocessorを意味します。従来の文字ベースのプリプロセッサをC11またはC17と一緒に使用したい開発者は、/Zc:preprocessor-コンパイラスイッチを渡す必要があります。

Microsoftは、C17をISO Cのバグ修正リリースとして説明しました。C11バージョンとC17バージョンの唯一の違いは、C17の_STDC_versionマクロです。Visual StudioはC11オプション機能をサポートしていませんが、Microsoftは将来のリリースで最も影響力のあるオプション機能を追加する予定です。アトミックおよびスレッドのサポートは、製品ロードマップにあります。 

プログラムでC11とC17を使用するには、開発者は最新のInsider Preview Windows SDKアップデートを使用して、準拠するプリプロセッサと新しいUniversalCランタイムを使用する必要があります。開発者は、無料のMicrosoftアカウント(//signup.live.com)を作成してから、Insiderプログラムにオプトインできます。Microsoftは、C11およびC17の使用を開始するための一連の手順を投稿しています。

Visual Studio 2019 16.8 Preview 3は、コンパイラ、標準ライブラリ、およびIDE全体でC ++ 20のサポートも改善されています。モジュール、概念、コルーチン、および一部の範囲を同じプロジェクトで使用できます。