<!--
{
  "availability" : [

  ],
  "documentType" : "symbol",
  "framework" : "PackageDescription",
  "identifier" : "/documentation/PackageDescription/CXXLanguageStandard",
  "metadataVersion" : "0.1.0",
  "role" : "Enumeration",
  "symbol" : {
    "kind" : "Enumeration",
    "modules" : [
      "PackageDescription"
    ],
    "preciseIdentifier" : "s:18PackageDescription19CXXLanguageStandardO"
  },
  "title" : "CXXLanguageStandard"
}
-->

# CXXLanguageStandard

The supported C++ language standard you use to compile C++ sources in the
package.

```
enum CXXLanguageStandard
```

## Overview

Aliases are available for some C++ language standards. For example,
use `cxx98` or `cxx03` for the “ISO C++ 1998 with amendments” standard.
To learn more, see [C++ Support in Clang](https://clang.llvm.org/cxx_status.html).

## Topics

### Enumeration Cases

[`case cxx03`](/documentation/PackageDescription/CXXLanguageStandard/cxx03)

The identifier for the ISO C++ 1998 language standard with amendments.

[`case cxx11`](/documentation/PackageDescription/CXXLanguageStandard/cxx11)

The identifier for the ISO C++ 2011 language standard with amendments.

[`case cxx14`](/documentation/PackageDescription/CXXLanguageStandard/cxx14)

The identifier for the ISO C++ 2014 language standard with amendments.

[`case cxx1z`](/documentation/PackageDescription/CXXLanguageStandard/cxx1z)

The identifier for the ISO C++ 2017 language standard with amendments.

[`case cxx98`](/documentation/PackageDescription/CXXLanguageStandard/cxx98)

The identifier for the ISO C++ 1998 language standard with amendments.

[`case gnucxx03`](/documentation/PackageDescription/CXXLanguageStandard/gnucxx03)

The identifier for the ISO C++ 1998 language standard with amendments and GNU extensions.

[`case gnucxx11`](/documentation/PackageDescription/CXXLanguageStandard/gnucxx11)

The identifier for the ISO C++ 2011 language standard with amendments and GNU extensions.

[`case gnucxx14`](/documentation/PackageDescription/CXXLanguageStandard/gnucxx14)

The identifier for the ISO C++ 2014 language standard with amendments and GNU extensions.

[`case gnucxx1z`](/documentation/PackageDescription/CXXLanguageStandard/gnucxx1z)

The identifier for the ISO C++ 2017 language standard with amendments and GNU extensions.

[`case gnucxx98`](/documentation/PackageDescription/CXXLanguageStandard/gnucxx98)

The identifier for the ISO C++ 1998 language standard with amendments and GNU extensions.

[`case cxx17`](/documentation/PackageDescription/CXXLanguageStandard/cxx17)

The identifier for the ISO C++ 2017 language standard with amendments.

[`case cxx20`](/documentation/PackageDescription/CXXLanguageStandard/cxx20)

The identifier for the ISO C++ 2020 language standard.

[`case cxx2b`](/documentation/PackageDescription/CXXLanguageStandard/cxx2b)

The identifier for the ISO C++ 2023 draft language standard.

[`case gnucxx17`](/documentation/PackageDescription/CXXLanguageStandard/gnucxx17)

The identifier for the ISO C++ 2017 language standard with amendments and GNU extensions.

[`case gnucxx20`](/documentation/PackageDescription/CXXLanguageStandard/gnucxx20)

The identifier for the ISO C++ 2020 language standard with GNU extensions.

[`case gnucxx2b`](/documentation/PackageDescription/CXXLanguageStandard/gnucxx2b)

The identifier for the ISO C++ 2023 draft language standard with GNU extensions.

### Hashing

### Operator Functions

### Creating a Value

## Relationships

### Conforms To

[`Hashable`](/documentation/Swift/Hashable)

[`RawRepresentable`](/documentation/Swift/RawRepresentable)

[`Copyable`](/documentation/Swift/Copyable)

[`Escapable`](/documentation/Swift/Escapable)

[`Equatable`](/documentation/Swift/Equatable)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)