Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8310260

Compile the JDK as C++17

XMLWordPrintable

    • Icon: JEP JEP
    • Resolution: Rejected
    • Icon: P4 P4
    • None
    • None
    • Julian Waters
    • Infrastructure
    • Open
    • Implementation

      Summary

      Compile the JDK's C++ source code as the C++17 language.

      Goals

      Since JDK 16, the language features used by C++ code in the JDK have been set to the C++14 language standard. The purpose of this JEP is to formally allow C++ source code changes within the JDK to use C++17 language features, and to give specific guidance about which of those features may be used in HotSpot code.

      Non-Goals

      This JEP does not propose any usage or style changes for C++ code in the JDK that is outside of HotSpot. HotSpot's Style Guide has already been adapted for C++14 previously and should require only minimal changes.

      Description

      Changes to the Build System

      Microsoft Visual C/C++ Compiler: Visual Studio 2019 is required for JDK 17 and above. (Earlier versions will be rejected by configure.) Change the existing -std:c++14 flag to -std:c++17 for C++.

      Other supported compilers: Replace the -std=c++14 option -std=c++17.

      The minimum supported version of gcc is 8

      The minimum supported version of clang is 10

      Changes to C++ Usage in HotSpot code

      The existing restrictions and best-practice recommendations for C++ usage in HotSpot code are based on the C++14 language standard, and described in the HotSpot Style Guide.

      Lists of new features for C++17, along with links to their descriptions, can be found in the online documentation for some of the compilers and libraries:

      Risks and Assumptions

      Code that works with the current specification of C++14 may break when compiled as C++17, or may silently change behaviour without compilation errors due to differing semantics between the language versions.

            jwaters Julian Waters
            jwaters Julian Waters
            Kim Barrett
            Kim Barrett
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved: