From 537b40e0137614999d07d9678632a24f98057634 Mon Sep 17 00:00:00 2001 From: Kim Barrett Date: Tue, 17 Nov 2020 03:16:10 +0000 Subject: [PATCH] 8252588: HotSpot Style Guide should permit uniform initialization Reviewed-by: jrose, dholmes, dcubed, tschatzl, kvn --- doc/hotspot-style.html | 12 ++++++++++++ doc/hotspot-style.md | 17 +++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/doc/hotspot-style.html b/doc/hotspot-style.html index 04999f545ee..c04ac93dc91 100644 --- a/doc/hotspot-style.html +++ b/doc/hotspot-style.html @@ -49,6 +49,7 @@
  • thread_local
  • nullptr
  • <atomic>
  • +
  • Uniform Initialization
  • Additional Permitted Features
  • Excluded Features
  • Undecided Features
  • @@ -275,6 +276,17 @@ while ( test_foo(args...) ) { // No, excess spaces around controlDo not use facilities provided by the <atomic> header (n2427), (n2752); instead, use the HotSpot Atomic class and related facilities.

    Atomic operations in HotSpot code must have semantics which are consistent with those provided by the JDK's compilers for Java. There are platform-specific implementation choices that a C++ compiler might make or change that are outside the scope of the C++ Standard, and might differ from what the Java compilers implement.

    In addition, HotSpot Atomic has a concept of "conservative" memory ordering, which may differ from (may be stronger than) sequentially consistent. There are algorithms in HotSpot that are believed to rely on that ordering.

    +

    Uniform Initialization

    +

    The use of uniform initialization (n2672), also known as brace initialization, is permitted.

    +

    Some relevant sections from cppreference.com:

    + +

    Although related, the use of std::initializer_list remains forbidden, as part of the avoidance of the C++ Standard Library in HotSpot code.

    Additional Permitted Features