Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      C compiler support

      From cppreference.com
      <c
       
       
      Compiler support
       
      This page is maintained as best-effort and may lag behind most recent compiler releases. If you see something is out-of-date, please help us by updating it!

      Contents

      [edit] C23 features

      Note that this list may change, as the draft C23/2x standard evolves.

      [edit]

      [edit]C23 core language features

      This section is incomplete
      Reason: status for Apple Clang and other compilers supporting C2x
      C23 feature

       
      Paper(s)

       
      GCC
      Clang
      MSVC
      Apple Clang
      EDG eccp
      Intel C++
      Nvidia HPC C++ (ex PGI)*
      Nvidia nvcc
      Cray
      static_assert with no messageN226599YesYes6.52021.1.2 (clang based)
      [[nodiscard]]N2267109Yes6.42021.1.2 (clang based)
      [[maybe_unused]]N2270109Yes6.42021.1.2 (clang based)
      [[deprecated]]N2334109Yes6.42021.1.2 (clang based)
      AttributesN2335
      N2554
      109Yes6.42021.1.2 (clang based)
      IEEE 754 decimal floating-point typesN23414.2(partial)*
      12
      13.0(partial)*
      [[fallthrough]]N2408109Yes6.42021.1.2 (clang based)
      u8 character constantsN241810156.52022.2
      Removal offunction definitions without prototypeN243210152022.2
      [[nodiscard]] with messageN24481110Yes6.42021.1.2 (clang based)
      Unnamed parameters in function definitionsN24801111Yes6.42021.1.2 (clang based)
      Labels before declarations and end of blocksN25081116Partial*6.517.0*
      Binary integer constantsN25494.3*
      11
      2.9*
      9
      19.0 (2015)**Yes6.511.0*
      __has_c_attribute in preprocessor conditionalsN2553119Yes6.52021.1.2 (clang based)
      Allow duplicate attributesN25571113Yes6.52021.4 (clang-based
      IEEE 754 interchange and extended typesN26017(partial)*
      14
      6(partial)*Partial*
      Digit separatorsN2626121319.0 (2015)**Yes6.518.0*
      #elifdef and#elifndefN2645121319.40*13.1.6*6.52021.4
      Type change ofu8 string literalsN265313
      [[maybe_unused]] for labelsN266211166.52022.2
      #warningN2686YesYesYes6.5Yes
      Bit-precise integer types (_BitInt)N276314(partial)*156.52022.2
      [[noreturn]]N276413156.52022.2
      Suffixes for bit-precise integer constantsN277514152022.2
      __has_include in preprocessor conditionalsN27995Yes19.11*Yes6.518.0
      Identifier Syntax using Unicode Standard Annex 31N283613156.52022.2
      Removal offunction declarations without prototypeN284113152022.2
      Empty initializersN2900Partial*
      13
      Partial*Partial*Partial*Partial*
      typeof andtypeof_unqualN2927
      N2930
      Partial*
      13
      Partial*
      16
      19.39*Partial*Partial*Partial*Partial*
      New spelling of keywordsN293413166.5
      Predefinedtrue andfalseN293513152022.2
      [[unsequenced]] and[[reproducible]]N295615
      Relax requirements forvariadic parameter listN297513166.52023.1
      Type inference in object definitionsN30071318
      #embedN30171519
      constexpr objectsN30181319
      Improved Normal EnumerationsN30291320*
      Enumerations with fixed underlying typesN30301320*
      __VA_OPT__N30338
      13
      1219.39*6.5
      Storage-class specifiers for compound literalsN303813
      nullptrN30421316
       

      C23 feature
       

      Paper(s)
      GCC
      Clang
      MSVC
      Apple Clang
      EDG eccp
      Intel C++
      Nvidia HPC C++ (ex PGI)*
      Nvidia nvcc
      Cray

      [edit]C23 library features

      This section is incomplete
      Reason: a different list for C standard libraries

      [edit] C99 features

      [edit]

      [edit]C99 core language features

      This section is incomplete
      Reason: needs to list C compilers, verification
      C99 feature

       
      Paper(s)

       
      GCC
      Clang
      MSVC
      Apple Clang
      EDG eccp
      Intel C++
      Nvidia HPC C++ (ex PGI)*
      Nvidia nvcc
      Cray
      Universal-character-names inidentifiers3.1YesYes
      Increasedtranslation limitsN5900.9N/A
      //commentsN6442.7YesYes
      restrict pointersN4482.95Yespartial*
      Enhancedarithmetic typesN815
      N601
      N620
      N638
      N657
      N694
      N809
      YespartialMaybe
      Flexible array members3.0YesYes
      Variable-length array (VLA) typesN6830.9Yes
      Variably-modified (VM) typesN2778N/AYes
      Designated initializersN4943.0YesYes
      Non-constant initializers1.21N/A
      Idempotent cvr-qualifiersN5053.0N/A
      Trailing comma inenumerator-list0.9YesYes
      Hexadecimalfloating constantsN3082.8YesYes
      Compound literalsN7163.1YesYes
      Floating-point environmentpartialpartial
      Requiring truncation for divisions of signed integer typesN6170.9N/A
      Implicitreturn0; in themain() functionYesYesYes
      Declarations and statements in mixed orderN7403.0YesYes
      init-statement infor loopsYesYesYes
      inline functionsN7414.3YesYes
      Predefined variable__func__N6112.95YesYes
      Cvr-qualifiers andstatic in[] within function declarations3.1Yes
      Variadic macrosN7072.95YesYes
      _Pragma preprocessor operatorN6343.0Yespartial*
      Standard pragmas for floating-point evaluationN631
      N696
      No No
       

      C99 feature
       

      Paper(s)
      GCC
      Clang
      MSVC
      Apple Clang
      EDG eccp
      Intel C++
      Nvidia HPC C++ (ex PGI)*
      Nvidia nvcc
      Cray


      [edit]See also

      C++ documentation forcompiler support
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=c/compiler_support&oldid=145580"

      [8]ページ先頭

      ©2009-2025 Movatter.jp