about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--include/features.h10
2 files changed, 13 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 6be3d32698..c3483c8535 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -28,6 +28,9 @@
 
 2011-12-23  Ulrich Drepper  <drepper@gmail.com>
 
+	* include/features.h: Define __USE_ISOCXX11 when compiling ISo C++11
+	code.
+
 	[BZ #13528]
 	* libio/stdio.h: Do not declare gets for ISO C11 and _GNU_SOURCE.
 
diff --git a/include/features.h b/include/features.h
index b02ff750d3..173afc1c93 100644
--- a/include/features.h
+++ b/include/features.h
@@ -100,6 +100,7 @@
 #undef	__USE_ISOC11
 #undef	__USE_ISOC99
 #undef	__USE_ISOC95
+#undef	__USE_ISOCXX11
 #undef	__USE_POSIX
 #undef	__USE_POSIX2
 #undef	__USE_POSIX199309
@@ -206,6 +207,15 @@
 # define __USE_ISOC95	1
 #endif
 
+/* This is to enable compatibility for ISO C++11.
+
+   So far g++ does not provide a macro.  Check the temporary macro for
+   now, too.  */
+#if ((defined __cplusplus && __cplusplus >= 201103L)			      \
+     || defined __GXX_EXPERIMENTAL_CXX0X__)
+# define __USE_ISOCXX11	1
+#endif
+
 /* If none of the ANSI/POSIX macros are defined, use POSIX.1 and POSIX.2
    (and IEEE Std 1003.1b-1993 unless _XOPEN_SOURCE is defined).  */
 #if ((!defined __STRICT_ANSI__ || (_XOPEN_SOURCE - 0) >= 500) && \