From fdd0b853ed9119ce1227d76027afd4b6f5c596c0 Mon Sep 17 00:00:00 2001 From: Thad House Date: Sat, 6 May 2017 21:23:33 -0700 Subject: [PATCH] Fixes Base.h to work properly with MSVC 2015 and above (#513) --- wpilibc/shared/include/Base.h | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/wpilibc/shared/include/Base.h b/wpilibc/shared/include/Base.h index 8374d2a82d..d75bfe7d53 100644 --- a/wpilibc/shared/include/Base.h +++ b/wpilibc/shared/include/Base.h @@ -12,20 +12,21 @@ // MSVC 2013 doesn't allow "= default" on move constructors, but since we are // (currently) only actually using the move constructors in non-MSVC situations // (ie, wpilibC++Devices), we can just ignore it in MSVC. -#if !defined(_MSC_VER) -#define DEFAULT_MOVE_CONSTRUCTOR(ClassName) ClassName(ClassName&&) = default -#else +#if defined(_MSC_VER) && _MSC_VER < 1900 #define DEFAULT_MOVE_CONSTRUCTOR(ClassName) +#else +#define DEFAULT_MOVE_CONSTRUCTOR(ClassName) ClassName(ClassName&&) = default #endif -#if (__cplusplus < 201103L) -#if !defined(_MSC_VER) -#define nullptr NULL -#endif +#if defined(_MSC_VER) && _MSC_VER < 1900 #define constexpr const #endif -#if defined(_MSC_VER) +#if (__cplusplus < 201103L) && !defined(_MSC_VER) +#define nullptr NULL +#endif + +#if defined(_MSC_VER) && _MSC_VER < 1900 #define noexcept throw() #endif