RFR: 8369186: HotSpot Style Guide should permit some uses of the C++ Standard Library

Kim Barrett kbarrett at openjdk.org
Wed Oct 8 04:01:28 UTC 2025


Please review this change to the HotSpot Style Guide to suggest that C++
Standard Library components may be used, after appropriate vetting and
discussion, rather than just a blanket "no, don't use it" with a few very
narrow exceptions. It provides some guidance on that vetting process and
the criteria to use, along with usage patterns.

In particular, it proposes that Standard Library headers should not be
included directly, but instead through HotSpot-provided wrapper headers. This
gives us a place to document usage, provide workarounds for platform issues in
a single place, and so on.

Such wrapper headers are provided by this PR for <cstddef>, <limits>, and
<type_info>, along with updates to use them. I have a separate change for
<new> that I plan to propose later, under JDK-8369187. There will be
additional followups for other C compatibility headers besides <cstddef>.

This PR also cleans up some nomenclature issues around forbid vs exclude and
the like.

Testing: mach5 tier1-5, GHA sanity tests

-------------

Commit messages:
 - add wrapper for <type_traits>
 - add wrapper for <cstddef>
 - add wrapper for <limits>
 - style guide permits some standard library facilities

Changes: https://git.openjdk.org/jdk/pull/27601/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=27601&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8369186
  Stats: 623 lines in 68 files changed: 383 ins; 134 del; 106 mod
  Patch: https://git.openjdk.org/jdk/pull/27601.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/27601/head:pull/27601

PR: https://git.openjdk.org/jdk/pull/27601


More information about the hotspot-dev mailing list