CMAKE_CXX_KNOWN_FEATURES.rst 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. CMAKE_CXX_KNOWN_FEATURES
  2. ------------------------
  3. List of C++ features known to this version of CMake.
  4. The features listed in this global property may be known to be available to the
  5. C++ compiler. If the feature is available with the C++ compiler, it will
  6. be listed in the :variable:`CMAKE_CXX_COMPILE_FEATURES` variable.
  7. The features listed here may be used with the :command:`target_compile_features`
  8. command. See the :manual:`cmake-compile-features(7)` manual for information on
  9. compile features.
  10. The features known to this version of CMake are:
  11. ``cxx_aggregate_default_initializers``
  12. Aggregate default initializers, as defined in N3605_.
  13. .. _N3605: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3605.html
  14. ``cxx_alias_templates``
  15. Template aliases, as defined in N2258_.
  16. .. _N2258: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf
  17. ``cxx_alignas``
  18. Alignment control ``alignas``, as defined in N2341_.
  19. .. _N2341: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf
  20. ``cxx_alignof``
  21. Alignment control ``alignof``, as defined in N2341_.
  22. .. _N2341: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf
  23. ``cxx_attributes``
  24. Generic attributes, as defined in N2761_.
  25. .. _N2761: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf
  26. ``cxx_attribute_deprecated``
  27. ``[[deprecated]]`` attribute, as defined in N3760_.
  28. .. _N3760: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3760.html
  29. ``cxx_auto_type``
  30. Automatic type deduction, as defined in N1984_.
  31. .. _N1984: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf
  32. ``cxx_binary_literals``
  33. Binary literals, as defined in N3472_.
  34. .. _N3472: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3472.pdf
  35. ``cxx_constexpr``
  36. Constant expressions, as defined in N2235_.
  37. .. _N2235: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf
  38. ``cxx_contextual_conversions``
  39. Contextual conversions, as defined in N3323_.
  40. .. _N3323: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3323.pdf
  41. ``cxx_decltype_incomplete_return_types``
  42. Decltype on incomplete return types, as defined in N3276_.
  43. .. _N3276 : http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf
  44. ``cxx_decltype``
  45. Decltype, as defined in N2343_.
  46. .. _N2343: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf
  47. ``cxx_decltype_auto``
  48. ``decltype(auto)`` semantics, as defined in N3638_.
  49. .. _N3638: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3638.html
  50. ``cxx_default_function_template_args``
  51. Default template arguments for function templates, as defined in DR226_
  52. .. _DR226: http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#226
  53. ``cxx_defaulted_functions``
  54. Defaulted functions, as defined in N2346_.
  55. .. _N2346: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm
  56. ``cxx_defaulted_move_initializers``
  57. Defaulted move initializers, as defined in N3053_.
  58. .. _N3053: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3053.html
  59. ``cxx_delegating_constructors``
  60. Delegating constructors, as defined in N1986_.
  61. .. _N1986: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf
  62. ``cxx_deleted_functions``
  63. Deleted functions, as defined in N2346_.
  64. .. _N2346: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm
  65. ``cxx_digit_separators``
  66. Digit separators, as defined in N3781_.
  67. .. _N3781: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3781.pdf
  68. ``cxx_enum_forward_declarations``
  69. Enum forward declarations, as defined in N2764_.
  70. .. _N2764: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2764.pdf
  71. ``cxx_explicit_conversions``
  72. Explicit conversion operators, as defined in N2437_.
  73. .. _N2437: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf
  74. ``cxx_extended_friend_declarations``
  75. Extended friend declarations, as defined in N1791_.
  76. .. _N1791: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1791.pdf
  77. ``cxx_extern_templates``
  78. Extern templates, as defined in N1987_.
  79. .. _N1987: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm
  80. ``cxx_final``
  81. Override control ``final`` keyword, as defined in N2928_.
  82. .. _N2928: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm
  83. ``cxx_func_identifier``
  84. Predefined ``__func__`` identifier, as defined in N2340_.
  85. .. _N2340: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2340.htm
  86. ``cxx_generalized_initializers``
  87. Initializer lists, as defined in N2672_.
  88. .. _N2672: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm
  89. ``cxx_generic_lambdas``
  90. Generic lambdas, ss defined in N3649_.
  91. .. _N3649: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3649.html
  92. ``cxx_inheriting_constructors``
  93. Inheriting constructors, as defined in N2540_.
  94. .. _N2540: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm
  95. ``cxx_inline_namespaces``
  96. Inline namespaces, as defined in N2535_.
  97. .. _N2535: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm
  98. ``cxx_lambdas``
  99. Lambda functions, as defined in N2927_.
  100. .. _N2927: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2927.pdf
  101. ``cxx_lambda_init_captures``
  102. Initialized lambda captures, as defined in N3648_.
  103. .. _N3648: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3648.html
  104. ``cxx_local_type_template_args``
  105. Local and unnamed types as template arguments, as defined in N2657_.
  106. .. _N2657: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm
  107. ``cxx_long_long_type``
  108. ``long long`` type, as defined in N1811_.
  109. .. _N1811: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1811.pdf
  110. ``cxx_noexcept``
  111. Exception specifications, as defined in N3050_.
  112. .. _N3050: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html
  113. ``cxx_nonstatic_member_init``
  114. Non-static data member initialization, as defined in N2756_.
  115. .. _N2756: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2756.htm
  116. ``cxx_nullptr``
  117. Null pointer, as defined in N2431_.
  118. .. _N2431: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf
  119. ``cxx_override``
  120. Override control ``override`` keyword, as defined in N2928_.
  121. .. _N2928: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm
  122. ``cxx_range_for``
  123. Range-based for, as defined in N2930_.
  124. .. _N2930: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2930.html
  125. ``cxx_raw_string_literals``
  126. Raw string literals, as defined in N2442_.
  127. .. _N2442: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm
  128. ``cxx_reference_qualified_functions``
  129. Reference qualified functions, as defined in N2439_.
  130. .. _N2439: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm
  131. ``cxx_relaxed_constexpr``
  132. Relaxed constexpr, as defined in N3652_.
  133. .. _N3652: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3652.html
  134. ``cxx_return_type_deduction``
  135. Return type deduction on normal functions, as defined in N3386_.
  136. .. _N3386: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3386.html
  137. ``cxx_right_angle_brackets``
  138. Right angle bracket parsing, as defined in N1757_.
  139. .. _N1757: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html
  140. ``cxx_rvalue_references``
  141. R-value references, as defined in N2118_.
  142. .. _N2118: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html
  143. ``cxx_sizeof_member``
  144. Size of non-static data members, as defined in N2253_.
  145. .. _N2253: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2253.html
  146. ``cxx_static_assert``
  147. Static assert, as defined in N1720_.
  148. .. _N1720: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html
  149. ``cxx_strong_enums``
  150. Strongly typed enums, as defined in N2347_.
  151. .. _N2347: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf
  152. ``cxx_thread_local``
  153. Thread-local variables, as defined in N2659_.
  154. .. _N2659: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm
  155. ``cxx_trailing_return_types``
  156. Automatic function return type, as defined in N2541_.
  157. .. _N2541: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm
  158. ``cxx_unicode_literals``
  159. Unicode string literals, as defined in N2442_.
  160. .. _N2442: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm
  161. ``cxx_uniform_initialization``
  162. Uniform intialization, as defined in N2640_.
  163. .. _N2640: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2640.pdf
  164. ``cxx_unrestricted_unions``
  165. Unrestricted unions, as defined in N2544_.
  166. .. _N2544: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf
  167. ``cxx_user_literals``
  168. User-defined literals, as defined in N2765_.
  169. .. _N2765: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf
  170. ``cxx_variable_templates``
  171. Variable templates, as defined in N3651_.
  172. .. _N3651: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3651.pdf
  173. ``cxx_variadic_macros``
  174. Variadic macros, as defined in N1653_.
  175. .. _N1653: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1653.htm
  176. ``cxx_variadic_templates``
  177. Variadic templates, as defined in N2242_.
  178. .. _N2242: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf
  179. ``cxx_template_template_parameters``
  180. Template template parameters, as defined in ``ISO/IEC 14882:1998``.