# <LANG>_STANDARD

The variations are:

- `C_STANDARD`

- `CXX_STANDARD`

- `CUDA_STANDARD`

- `HIP_STANDARD`

- `OBJC_STANDARD`

- `OBJCXX_STANDARD`

These properties specify language standard versions which are requested. When a newer standard is specified than is supported by the compiler, then it will fallback to the latest supported standard. This "decay" behavior may be controlled with the `<LANG>_STANDARD_REQUIRED` target property.

Note that the actual language standard used may be higher than that specified by `<LANG>_STANDARD`, regardless of the value of `<LANG>_STANDARD_REQUIRED`. In particular, transitive usage requirements or the use of `compile features` can raise the required language standard above what `<LANG>_STANDARD` specifies.

These properties are initialized by the value of the `CMAKE_<LANG>_STANDARD` variable if it is set when a target is created.

For supported values and CMake versions see the respective pages. To control compiler-specific extensions see `<LANG>_EXTENSIONS`.

See the `cmake-compile-features(7)` manual for information on compile features and a list of supported compilers.