uchar.h: define char16_t and char32_t for old c++
authorSzabolcs Nagy <nsz@port70.net>
Sun, 8 Jul 2018 13:19:03 +0000 (15:19 +0200)
committerRich Felker <dalias@aerifal.cx>
Wed, 18 Jul 2018 02:24:03 +0000 (22:24 -0400)
including uchar.h in c++ code is only well defined in c++11 onwards
where char16_t and char32_t type definitions must be hidden since they
are keywords.  however some c++ code compiled for older c++ standard
include uchar.h too and they need the typedefs, this fix makes such
code work.

include/uchar.h

index 8dabf1ed9b8ee291709cb919bb7c05b85fa2d7ab..7e5c4d4068949258ccede5c4911a3e816a2fc006 100644 (file)
@@ -3,7 +3,9 @@
 
 #ifdef __cplusplus
 extern "C" {
-#else
+#endif
+
+#if __cplusplus < 201103L
 typedef unsigned short char16_t;
 typedef unsigned char32_t;
 #endif