From: Bruno Haible <bruno@clisp.org>
Date: Sun, 4 Sep 2022 14:24:56 +0000 (+0200)
Subject: stdbool: Fix compilation error in C++ mode with MSVC 14.
X-Git-Tag: v1.0~2074
X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=99b0ab09036e16ad845438938d9b607f2d3f346a;p=gnulib.git

stdbool: Fix compilation error in C++ mode with MSVC 14.

* lib/stdbool.in.h (_Bool, bool, false, true): In C++ mode with MSVC 14,
don't define these as macros.
---

diff --git a/ChangeLog b/ChangeLog
index 935d1b156b..5799cfef35 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2022-09-04  Bruno Haible  <bruno@clisp.org>
+
+	stdbool: Fix compilation error in C++ mode with MSVC 14.
+	* lib/stdbool.in.h (_Bool, bool, false, true): In C++ mode with MSVC 14,
+	don't define these as macros.
+
 2022-09-04  Bruno Haible  <bruno@clisp.org>
 
 	fts: Fix compilation error with MSVC 14.
diff --git a/lib/stdbool.in.h b/lib/stdbool.in.h
index 2fa46724b2..36f26560af 100644
--- a/lib/stdbool.in.h
+++ b/lib/stdbool.in.h
@@ -59,8 +59,10 @@
 /* 7.16. Boolean type and values */
 
 #ifdef __cplusplus
-# define _Bool bool
-# define bool bool
+# if !defined _MSC_VER
+#  define _Bool bool
+#  define bool bool
+# endif
 #else
 # if !defined __GNUC__
    /* If @HAVE__BOOL@:
@@ -103,8 +105,10 @@ typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool;
 
 /* The other macros must be usable in preprocessor directives.  */
 #ifdef __cplusplus
-# define false false
-# define true true
+# if !defined _MSC_VER
+#  define false false
+#  define true true
+# endif
 #else
 # define false 0
 # define true 1