1. ホーム
  2. c++

[解決済み] Visual Studio は新しい C / C++ 標準をサポートしますか?

2022-12-14 09:43:35

質問

C99 や C++11 など、言語標準に追加されつつある、いつか使えたらいいなと思うような素敵なものを読み続けています。しかし、現在、私たちは Visual Studio で C++ を書くという土地に甘んじています。

標準にある新しいもののどれかが Visual Studio に追加されることはあるのでしょうか、それとも Microsoft はそのために新しい C# の亜種を追加することのほうに興味があるのでしょうか。

編集: 受け入れられた回答に加えて、Visual C++チームのブログを見つけました。

http://blogs.msdn.com/vcblog/

で、具体的にはその中のこの記事。

https://web.archive.org/web/20190109064523/https://blogs.msdn.microsoft.com/vcblog/2008/02/22/tr1-slide-decks/

とても便利です。ありがとうございます!

どのように解決するのですか?

MS はこれに対して一連の公的な返答をしていますが、そのほとんどはユーザーのせいにしています。たとえば、このようなものです。

https://devblogs.microsoft.com/cppblog/iso-c-standard-update/

<ブロッククオート

さて、Visual C++ コンパイラー チームは、なぜ C99 を実装しないのか、という質問を時々受けます。 それは、本当にユーザーからの関心に基づいています。 特定の C99 機能に対する多くの要求を受け取った場合、私たちはその機能 (または類似の機能) を実装するよう努めました。 その例として、可変長マクロがあります。 long long , __pragma , __FUNCTION__ そして __restrict . もし、あなたが仕事で役に立つと思うC99の機能が他にあれば、私たちに教えてください。 私たちはC言語ユーザーからあまり話を聞かないので、積極的に発言してください。

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=345360

<ブロッククオート

こんにちは: 残念ながら、私たちのユーザーの大半から寄せられる圧倒的なフィードバックは、私たちが C-99 ではなく C++-0x に注力することを望むということです。私たちは、C-99 の人気のある特定の機能 (可変長マクロ。 long long ) がありますが、それ以上のことは C-99 の領域では (少なくとも短期的には) ほとんど行われないと思われます。

ジョナサン・ケーブス

Visual C++ コンパイラチーム。

これはかなり悲しい現状ですが、MS がユーザーを囲い込みたいのだと思えば納得もいきます。最新の gcc ベースのコードを MSVC に移植することが非常に難しくなり、少なくとも私は非常につらいと思います。

しかし、回避策は存在します。 Intel の C コンパイラーは C99 コードを扱うことができ、gcc と同じフラグを持つので、プラットフォーム間でのコードの移植がはるかに容易になります。 また、インテルのコンパイラはビジュアルスタジオで動作します。 したがって、MS コンパイラーを廃止することで、何らかの価値があると思っているような MS IDE をまだ使用でき、C99 を心ゆくまで使用することができるのです。

より賢明なアプローチは、正直なところ、Intel CC または gcc に移行し、プログラミング環境として Eclipse を使用することです。 私の経験では、Windows、Linux、Solaris、AIX などの間でのコードの移植性が通常重要であり、残念ながら MS ツールではまったくサポートされていません。