6

cコンパイラはC1X機能のいずれかを実装していますか?

PS:現在のcコンパイラでこれらの機能のいくつかをエミュレートする方法はありますか

4

4 に答える 4

7

GCC 4.6には、C1X 機能のいくつかの実験的サポートがあります。

ISO C 標準の今後の C1X リビジョンから、一部の機能が実験的にサポートされるようになりました。このサポートは、-std=c1x または -std=gnu1x (GNU 拡張機能を備えた C1X の場合) で選択できます。このサポートは実験的なものであり、C1X 標準ドラフトへの変更との一貫性を保つために、将来のリリースで非互換に変更される可能性があることに注意してください。C1X の N1539 ドラフトで説明されているように、次の機能が新たにサポートされます (変更は 2011 年 3 月の WG14 会議で合意されました)。他の一部の機能は、コンパイラの変更を必要とせずに既にサポートされているか、一部のサポートはありますが、N1539 (修正) と完全には一致していません。

  • 静的アサーション (_Static_assert キーワード)
  • Typedef の再定義
  • <float.h> の新しいマクロ
  • 匿名の構造と共用体
于 2011-09-01T09:43:41.583 に答える
7

gcc に加えて、clang は C1x 機能のサポートを追加し始めました。特に、 と がサポートされ_Generic_Static_assertいます。他にもいくつかの機能が実装されている可能性がありますが、私は試していません。

于 2011-09-10T14:20:38.697 に答える
3

リストと gcc テストスイート (ls gcc/gcc/testsuite/gcc.dg/c1x*) の熟読に基づく:

  • _Noreturngcc-4.7 で登場するようです。
  • テストスイートからは、Unicode 文字列もそうであるように見えます。
  • また、CMPLX マクロも開発のようです。
  • _Genericは gcc-4.8 で登場するかもしれません。
于 2011-09-02T17:19:43.017 に答える