aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJordan Maples <jomaples@microsoft.com>2019-10-24 17:07:42 -0700
committerJordan Maples <jomaples@microsoft.com>2019-10-24 17:07:42 -0700
commit97dc8f83fca1c5d038579ed1f26016a52b3aaf8b (patch)
tree59dc69ecf3aca5ce6b9da5cdfebddfd073d591be
parent71ec9f84d84172bb2ab6f0ec48c3fe8cce9f0e67 (diff)
downloadplatform_external_Microsoft-GSL-97dc8f83fca1c5d038579ed1f26016a52b3aaf8b.tar.gz
platform_external_Microsoft-GSL-97dc8f83fca1c5d038579ed1f26016a52b3aaf8b.tar.bz2
platform_external_Microsoft-GSL-97dc8f83fca1c5d038579ed1f26016a52b3aaf8b.zip
adding check to __cpp_lib_byte, which was added to the defn for 15.8
-rw-r--r--include/gsl/gsl_byte8
1 files changed, 5 insertions, 3 deletions
diff --git a/include/gsl/gsl_byte b/include/gsl/gsl_byte
index 1670646..7939ff8 100644
--- a/include/gsl/gsl_byte
+++ b/include/gsl/gsl_byte
@@ -33,6 +33,8 @@
#include <type_traits>
+// VS2017 15.8 added support for the __cpp_lib_byte definition
+// TODO: drop _HAS_STD_BYTE when support for pre 15.8 expires
#ifdef _MSC_VER
#pragma warning(push)
@@ -42,15 +44,15 @@
#ifndef GSL_USE_STD_BYTE
// this tests if we are under MSVC and the standard lib has std::byte and it is enabled
-#if defined(_HAS_STD_BYTE) && _HAS_STD_BYTE
+#if (defined(_HAS_STD_BYTE) && _HAS_STD_BYTE) || (defined(__cpp_lib_byte) && __cpp_lib_byte >= 201603)
#define GSL_USE_STD_BYTE 1
-#else // defined(_HAS_STD_BYTE) && _HAS_STD_BYTE
+#else // defined(_HAS_STD_BYTE) && _HAS_STD_BYTE || (defined(__cpp_lib_byte) && __cpp_lib_byte)
#define GSL_USE_STD_BYTE 0
-#endif // defined(_HAS_STD_BYTE) && _HAS_STD_BYTE
+#endif // defined(_HAS_STD_BYTE) && _HAS_STD_BYTE || (defined(__cpp_lib_byte) && __cpp_lib_byte)
#endif // GSL_USE_STD_BYTE
#else // _MSC_VER