[committed] libstdc++: Add comment to <charconv> explaining C++14 status

Message ID 20200217160508.GA1539839@redhat.com
State New
Headers show
Series
  • [committed] libstdc++: Add comment to <charconv> explaining C++14 status
Related show

Commit Message

Jonathan Wakely Feb. 17, 2020, 4:05 p.m.
This header is intentionally valid in C++14 mode, because no conforming
C++14 program will try to include <charconv> and so it's OK to add new
(non-reserved in C++14) names to namespace std. However, other headers
must not include <charconv> transitively prior to C++17, so that we
don't add those non-reserved names without the user requesting it.

This adds a comment to the header explaining that.

	* include/std/charconv: Add comment.

Tested powerpc64le-linux, committed to master.
commit cfbc8fbb37e7b406ab2567ac35629793d4b499e7
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Feb 17 15:44:03 2020 +0000

    libstdc++: Add comment to <charconv> explaining C++14 status
    
    This header is intentionally valid in C++14 mode, because no conforming
    C++14 program will try to include <charconv> and so it's OK to add new
    (non-reserved in C++14) names to namespace std. However, other headers
    must not include <charconv> transitively prior to C++17, so that we
    don't add those non-reserved names without the user requesting it.
    
    This adds a comment to the header explaining that.
    
            * include/std/charconv: Add comment.

Patch

diff --git a/libstdc++-v3/include/std/charconv b/libstdc++-v3/include/std/charconv
index 9b5a1f7cab8..ff7dfa12268 100644
--- a/libstdc++-v3/include/std/charconv
+++ b/libstdc++-v3/include/std/charconv
@@ -31,6 +31,10 @@ 
 
 #pragma GCC system_header
 
+// As an extension we support <charconv> in C++14, but this header should not
+// be included by any other library headers in C++14 mode. This ensures that
+// the names defined in this header are not added to namespace std unless a
+// user explicitly includes <charconv> in C++14 code.
 #if __cplusplus >= 201402L
 
 #include <type_traits>