スポンサーリンク

Visual C++ におけるC標準への対応は残念な感じに

The short answer is that Visual C++’s focus is to support ISO C code that is supported by ISO C90 or ISO C++ 98 or 11. For the longer answer, I’m combining my UserVoice answers below, plus an additional comment about restrict in particular.

引用元: Reader Q&A: What about VC++ and C99? « Sutter’s Mill.

いろいろと難しいところがあるので、原則として、VC++ではC言語の新しい標準よりも、C++標準への準拠を優先し、C95/C99/C11への対応はC++標準が必要とする部分を優先する。また、CコンパイラはC90のものしか用意せず、C95/C99/C11に対応したCコンパイラは用意しないので、C99/C11の機能が必要なCのコードをコンパイルする必要がある場合には、CPPとして書くか(拡張子をcppなどにする)、/TCオプションで.CをCPPの拡張子と指定してC++コンパイラでコンパイルする。

というのがVC++におけるC標準への対応方針のようです。

なんというか、いいんですかねこれで?という感想です。

ま、大方の開発者にとってはあまり大きな問題にはならないかもしれませんね。ATLやMFC使う限りあまり問題になりそうに無いですし。

とりあえず現状C99/C11に対するよりよい対応が必要な人はMinGWでgccを使うしか無いかなというところでしょうか。

 

 

コメント

  1. @kaizen_nagoya より:

    C90,99,C2011 Visual C , GCC, Clang(LLVM)という表題で、C言語標準対応を調査しています。https://researchmap.jp/jot5p1dxd-1797580/#_1797580 OSC Nagoya(2015/5/22)http://www.ospn.jp/osc2015-nagoya/ までに整理できたことは発表予定です。

タイトルとURLをコピーしました