From: Sean Hunt Date: Thu, 23 Jun 2011 01:21:01 +0000 (+0000) Subject: Fix a bunch of HTML compliance problems with LanguageExtensions.html X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7e98b477de0a2762f057dc49b45fb25587bc4343;p=clang Fix a bunch of HTML compliance problems with LanguageExtensions.html One weird thing is the addition of several tags where previously there were id attributes on the

tags. This is because the id attribute must begin with a letter, not an underscore. The name attribute is not so constrained, so links will continue to work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133677 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/LanguageExtensions.html b/docs/LanguageExtensions.html index cce2e8c5b0..991c3b96c3 100644 --- a/docs/LanguageExtensions.html +++ b/docs/LanguageExtensions.html @@ -1,13 +1,17 @@ + + -Clang Language Extensions - - - + + Clang LanguageExtensions + + + @@ -25,12 +29,12 @@ td {
  • Vectors and Extended Vectors
  • Messages on deprecated and unavailable attributes
  • Attributes on enumerators
  • -
  • Checks for Standard Language Features
  • +
  • Checks for Standard Language Features -
  • Checks for Upcoming Standard Language Features
  • + +
  • Checks for Upcoming Standard Language Features
  • C1X - +
  • +
  • Checks for Type Traits
  • Blocks
  • Objective-C Features @@ -105,7 +109,7 @@ code without having to resort to something like autoconf or fragile "compiler version checks".

    -

    __has_builtin

    +

    __has_builtin

    This function-like macro takes a single identifier argument that is the name @@ -130,7 +134,7 @@ not. It can be used like this:

    -

    __has_feature and __has_extension

    +

    __has_feature and __has_extension

    These function-like macros take a single identifier argument that is the @@ -175,7 +179,7 @@ non-standardized features, i.e. features not prefixed c_,

    The feature tag is described along with the language feature below.

    -

    __has_attribute

    +

    __has_attribute

    This function-like macro takes a single identifier argument that is the name @@ -209,7 +213,7 @@ check for the existence of an include file before doing a possibly failing #include directive.

    -

    __has_include

    +

    __has_include

    This function-like macro takes a single file name string argument that @@ -219,12 +223,12 @@ be found using the include paths, or 0 otherwise:

     // Note the two possible file name string formats.
    -#if __has_include("myinclude.h") && __has_include(<stdint.h>)
    +#if __has_include("myinclude.h") && __has_include(<stdint.h>)
     # include "myinclude.h"
     #endif
     
     // To avoid problem with non-clang compilers not having this macro.
    -#if defined(__has_include) && __has_include("myinclude.h")
    +#if defined(__has_include) && __has_include("myinclude.h")
     # include "myinclude.h"
     #endif
     
    @@ -233,7 +237,7 @@ be found using the include paths, or 0 otherwise:

    To test for this feature, use #if defined(__has_include).

    -

    __has_include_next

    +

    __has_include_next

    This function-like macro takes a single file name string argument that @@ -245,12 +249,12 @@ be found using the include paths, or 0 otherwise:

     // Note the two possible file name string formats.
    -#if __has_include_next("myinclude.h") && __has_include_next(<stdint.h>)
    +#if __has_include_next("myinclude.h") && __has_include_next(<stdint.h>)
     # include_next "myinclude.h"
     #endif
     
     // To avoid problem with non-clang compilers not having this macro.
    -#if defined(__has_include_next) && __has_include_next("myinclude.h")
    +#if defined(__has_include_next) && __has_include_next("myinclude.h")
     # include_next "myinclude.h"
     #endif
     
    @@ -411,115 +415,115 @@ noted.

    C++0x standard. As a result, all these features are enabled with the -std=c++0x option when compiling C++ code.

    -

    C++0x decltype()

    +

    C++0x decltype()

    Use __has_feature(cxx_decltype) or __has_extension(cxx_decltype) to determine if support for the decltype() specifier is enabled.

    -

    C++0x SFINAE includes access control

    +

    C++0x SFINAE includes access control

    Use __has_feature(cxx_access_control_sfinae) or __has_extension(cxx_access_control_sfinae) to determine whether access-control errors (e.g., calling a private constructor) are considered to be template argument deduction errors (aka SFINAE errors), per C++ DR1170.

    -

    C++0x alias templates

    +

    C++0x alias templates

    Use __has_feature(cxx_alias_templates) or __has_extension(cxx_alias_templates) to determine if support for C++0x's alias declarations and alias templates is enabled.

    -

    C++0x attributes

    +

    C++0x attributes

    Use __has_feature(cxx_attributes) or __has_extension(cxx_attributes) to determine if support for attribute parsing with C++0x's square bracket notation is enabled.

    -

    C++0x default template arguments in function templates

    +

    C++0x default template arguments in function templates

    Use __has_feature(cxx_default_function_template_args) or __has_extension(cxx_default_function_template_args) to determine if support for default template arguments in function templates is enabled.

    -

    C++0x deleted functions

    +

    C++0x deleted functions

    Use __has_feature(cxx_deleted_functions) or __has_extension(cxx_deleted_functions) to determine if support for deleted function definitions (with = delete) is enabled.

    -

    C++0x lambdas

    +

    C++0x lambdas

    Use __has_feature(cxx_lambdas) or __has_extension(cxx_lambdas) to determine if support for lambdas is enabled. clang does not currently implement this feature.

    -

    C++0x nullptr

    +

    C++0x nullptr

    Use __has_feature(cxx_nullptr) or __has_extension(cxx_nullptr) to determine if support for nullptr is enabled.

    -

    C++0x override control

    +

    C++0x override control

    Use __has_feature(cxx_override_control) or __has_extension(cxx_override_control) to determine if support for the override control keywords is enabled.

    -

    C++0x reference-qualified functions

    +

    C++0x reference-qualified functions

    Use __has_feature(cxx_reference_qualified_functions) or __has_extension(cxx_reference_qualified_functions) to determine if support for reference-qualified functions (e.g., member functions with & or && applied to *this) is enabled.

    -

    C++0x range-based for loop

    +

    C++0x range-based for loop

    Use __has_feature(cxx_range_for) or __has_extension(cxx_range_for) to determine if support for the range-based for loop is enabled.

    -

    C++0x rvalue references

    +

    C++0x rvalue references

    Use __has_feature(cxx_rvalue_references) or __has_extension(cxx_rvalue_references) to determine if support for rvalue references is enabled.

    -

    C++0x static_assert()

    +

    C++0x static_assert()

    Use __has_feature(cxx_static_assert) or __has_extension(cxx_static_assert) to determine if support for compile-time assertions using static_assert is enabled.

    -

    C++0x type inference

    +

    C++0x type inference

    Use __has_feature(cxx_auto_type) or __has_extension(cxx_auto_type) to determine C++0x type inference is supported using the auto specifier. If this is disabled, auto will instead be a storage class specifier, as in C or C++98.

    -

    C++0x variadic templates

    +

    C++0x variadic templates

    Use __has_feature(cxx_variadic_templates) or __has_extension(cxx_variadic_templates) to determine if support for variadic templates is enabled.

    -

    C++0x inline namespaces

    +

    C++0x inline namespaces

    Use __has_feature(cxx_inline_namespaces) or __has_extension(cxx_inline_namespaces) to determine if support for inline namespaces is enabled.

    -

    C++0x trailing return type

    +

    C++0x trailing return type

    Use __has_feature(cxx_trailing_return) or __has_extension(cxx_trailing_return) to determine if support for the alternate function declaration syntax with trailing return type is enabled.

    -

    C++0x noexcept

    +

    C++0x noexcept

    Use __has_feature(cxx_noexcept) or __has_extension(cxx_noexcept) to determine if support for noexcept exception specifications is enabled.

    -

    C++0x strongly typed enumerations

    +

    C++0x strongly typed enumerations

    Use __has_feature(cxx_strong_enums) or __has_extension(cxx_strong_enums) to determine if support for @@ -531,7 +535,7 @@ strongly typed, scoped enumerations is enabled.

    C1X standard. As a result, all these features are enabled with the -std=c1x option when compiling C code.

    -

    C1X generic selections

    +

    C1X generic selections

    Use __has_feature(c_generic_selections) or __has_extension(c_generic_selections) to determine if support for @@ -545,7 +549,7 @@ C1X draft standard.

    appropriate standard, but in C++, which lacks the type compatibility rules used in C, types are considered compatible only if they are equivalent.

    -

    C1X _Static_assert()

    +

    C1X _Static_assert()

    Use __has_feature(c_static_assert) or __has_extension(c_static_assert) to determine if support for @@ -555,7 +559,7 @@ compile-time assertions using _Static_assert is enabled.

    Checks for Type Traits

    -

    Clang supports the GNU C++ type traits and a subset of the Microsoft Visual C++ Type traits. For each supported type trait __X, __has_extension(X) indicates the presence of the type trait. For example: +

    Clang supports the GNU C++ type traits and a subset of the Microsoft Visual C++ Type traits. For each supported type trait __X, __has_extension(X) indicates the presence of the type trait. For example:

     #if __has_extension(is_convertible_to)
    @@ -641,7 +645,7 @@ to have the type NSArray *. If neither alloc nor To determine whether a method has a related result type, the first
     word in the camel-case selector (e.g., "init" in "initWithObjects") is
     considered, and the method will a related result type if its return
    -type is compatible with the type of its class and if
    +type is compatible with the type of its class and if

      @@ -651,7 +655,7 @@ type is compatible with the type of its class and if
    • the first word is "autorelease", "init", "retain", or "self", and the method is an instance method.
    • -

    +

    If a method with a related result type is overridden by a subclass method, the subclass method must also return a type that is compatible @@ -797,7 +801,7 @@ vector support instead of builtins, in order to reduce the number of builtins that we need to implement.

    -

    __builtin_shufflevector

    +

    __builtin_shufflevector

    __builtin_shufflevector is used to express generic vector @@ -849,7 +853,7 @@ the number of indices specified.

    Query for this feature with __has_builtin(__builtin_shufflevector).

    -

    __builtin_unreachable

    +

    __builtin_unreachable

    __builtin_unreachable is used to indicate that a specific point in @@ -887,7 +891,7 @@ no arguments and produces a void result.

    Query for this feature with __has_builtin(__builtin_unreachable).

    -

    __sync_swap

    +

    __sync_swap

    __sync_swap is used to atomically swap integers or pointers in @@ -903,7 +907,7 @@ memory.

    Example of Use:

    -int old_value = __sync_swap(&value, new_value);
    +int old_value = __sync_swap(&value, new_value);
     

    Description: