Squashed 'third_party/boostorg/predef/' content from commit 560ff52

Change-Id: Ib7804ff2c768e0d597993b019146292dfb41e9dc
git-subtree-dir: third_party/boostorg/predef
git-subtree-split: 560ff5298ead78276872604f1ee6523e63a4fa90
diff --git a/include/boost/predef/platform/cloudabi.h b/include/boost/predef/platform/cloudabi.h
new file mode 100644
index 0000000..c44f689
--- /dev/null
+++ b/include/boost/predef/platform/cloudabi.h
@@ -0,0 +1,43 @@
+/*
+  Copyright 2017 James E. King, III
+  Distributed under the Boost Software License, Version 1.0.
+  (See accompanying file LICENSE_1_0.txt or copy at
+    http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_PLAT_CLOUDABI_H
+#define BOOST_PREDEF_PLAT_CLOUDABI_H
+
+#include <boost/predef/version_number.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_PLAT_CLOUDABI`]
+
+[@https://github.com/NuxiNL/cloudabi CloudABI] platform.
+
+[table
+    [[__predef_symbol__] [__predef_version__]]
+
+    [[`__CloudABI__`] [__predef_detection__]]
+    ]
+ */
+
+#define BOOST_PLAT_CLOUDABI BOOST_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__CloudABI__)
+#   undef BOOST_PLAT_CLOUDABI
+#   define BOOST_PLAT_CLOUDABI BOOST_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if BOOST_PLAT_CLOUDABI
+#   define BOOST_PLAT_CLOUDABI_AVAILABLE
+#   include <boost/predef/detail/platform_detected.h>
+#endif
+
+#define BOOST_PLAT_CLOUDABI_NAME "CloudABI"
+
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_CLOUDABI,BOOST_PLAT_CLOUDABI_NAME)
diff --git a/include/boost/predef/platform/ios.h b/include/boost/predef/platform/ios.h
new file mode 100644
index 0000000..af1c364
--- /dev/null
+++ b/include/boost/predef/platform/ios.h
@@ -0,0 +1,58 @@
+/*
+Copyright Ruslan Baratov 2017
+Copyright Rene Rivera 2017
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_PLAT_IOS_H
+#define BOOST_PREDEF_PLAT_IOS_H
+
+#include <boost/predef/os/ios.h> // BOOST_OS_IOS
+#include <boost/predef/version_number.h> // BOOST_VERSION_NUMBER_NOT_AVAILABLE
+
+/*`
+[heading `BOOST_PLAT_IOS_DEVICE`]
+[heading `BOOST_PLAT_IOS_SIMULATOR`]
+
+[table
+    [[__predef_symbol__] [__predef_version__]]
+
+    [[`TARGET_IPHONE_SIMULATOR`] [__predef_detection__]]
+    ]
+ */
+
+#define BOOST_PLAT_IOS_DEVICE BOOST_VERSION_NUMBER_NOT_AVAILABLE
+#define BOOST_PLAT_IOS_SIMULATOR BOOST_VERSION_NUMBER_NOT_AVAILABLE
+
+// https://opensource.apple.com/source/CarbonHeaders/CarbonHeaders-18.1/TargetConditionals.h
+#if BOOST_OS_IOS
+#    include <TargetConditionals.h>
+#    if TARGET_IPHONE_SIMULATOR == 1
+#        undef BOOST_PLAT_IOS_SIMULATOR
+#        define BOOST_PLAT_IOS_SIMULATOR BOOST_VERSION_NUMBER_AVAILABLE
+#    else
+#        undef BOOST_PLAT_IOS_DEVICE
+#        define BOOST_PLAT_IOS_DEVICE BOOST_VERSION_NUMBER_AVAILABLE
+#    endif
+#endif
+
+#if BOOST_PLAT_IOS_SIMULATOR
+#    define BOOST_PLAT_IOS_SIMULATOR_AVAILABLE
+#    include <boost/predef/detail/platform_detected.h>
+#endif
+
+#if BOOST_PLAT_IOS_DEVICE
+#    define BOOST_PLAT_IOS_DEVICE_AVAILABLE
+#    include <boost/predef/detail/platform_detected.h>
+#endif
+
+#define BOOST_PLAT_IOS_SIMULATOR_NAME "iOS Simulator"
+#define BOOST_PLAT_IOS_DEVICE_NAME "iOS Device"
+
+#endif // BOOST_PREDEF_PLAT_IOS_H
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_IOS_SIMULATOR,BOOST_PLAT_IOS_SIMULATOR_NAME)
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_IOS_DEVICE,BOOST_PLAT_IOS_DEVICE_NAME)
diff --git a/include/boost/predef/platform/mingw.h b/include/boost/predef/platform/mingw.h
new file mode 100644
index 0000000..c52827d
--- /dev/null
+++ b/include/boost/predef/platform/mingw.h
@@ -0,0 +1,69 @@
+/*
+Copyright Rene Rivera 2008-2015
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_PLAT_MINGW_H
+#define BOOST_PREDEF_PLAT_MINGW_H
+
+#include <boost/predef/version_number.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_PLAT_MINGW`]
+
+[@http://en.wikipedia.org/wiki/MinGW MinGW] platform, either variety.
+Version number available as major, minor, and patch.
+
+[table
+    [[__predef_symbol__] [__predef_version__]]
+
+    [[`__MINGW32__`] [__predef_detection__]]
+    [[`__MINGW64__`] [__predef_detection__]]
+
+    [[`__MINGW64_VERSION_MAJOR`, `__MINGW64_VERSION_MINOR`] [V.R.0]]
+    [[`__MINGW32_VERSION_MAJOR`, `__MINGW32_VERSION_MINOR`] [V.R.0]]
+    ]
+ */
+
+#define BOOST_PLAT_MINGW BOOST_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__MINGW32__) || defined(__MINGW64__)
+#   include <_mingw.h>
+#   if !defined(BOOST_PLAT_MINGW_DETECTION) && (defined(__MINGW64_VERSION_MAJOR) && defined(__MINGW64_VERSION_MINOR))
+#       define BOOST_PLAT_MINGW_DETECTION \
+            BOOST_VERSION_NUMBER(__MINGW64_VERSION_MAJOR,__MINGW64_VERSION_MINOR,0)
+#   endif
+#   if !defined(BOOST_PLAT_MINGW_DETECTION) && (defined(__MINGW32_VERSION_MAJOR) && defined(__MINGW32_VERSION_MINOR))
+#       define BOOST_PLAT_MINGW_DETECTION \
+            BOOST_VERSION_NUMBER(__MINGW32_MAJOR_VERSION,__MINGW32_MINOR_VERSION,0)
+#   endif
+#   if !defined(BOOST_PLAT_MINGW_DETECTION)
+#       define BOOST_PLAT_MINGW_DETECTION BOOST_VERSION_NUMBER_AVAILABLE
+#   endif
+#endif
+
+#ifdef BOOST_PLAT_MINGW_DETECTION
+#   define BOOST_PLAT_MINGW_AVAILABLE
+#   if defined(BOOST_PREDEF_DETAIL_PLAT_DETECTED)
+#       define BOOST_PLAT_MINGW_EMULATED BOOST_PLAT_MINGW_DETECTION
+#   else
+#       undef BOOST_PLAT_MINGW
+#       define BOOST_PLAT_MINGW BOOST_PLAT_MINGW_DETECTION
+#   endif
+#   include <boost/predef/detail/platform_detected.h>
+#endif
+
+#define BOOST_PLAT_MINGW_NAME "MinGW (any variety)"
+
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_MINGW,BOOST_PLAT_MINGW_NAME)
+
+#ifdef BOOST_PLAT_MINGW_EMULATED
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_MINGW_EMULATED,BOOST_PLAT_MINGW_NAME)
+#endif
diff --git a/include/boost/predef/platform/mingw32.h b/include/boost/predef/platform/mingw32.h
new file mode 100644
index 0000000..ff90038
--- /dev/null
+++ b/include/boost/predef/platform/mingw32.h
@@ -0,0 +1,63 @@
+/*
+Copyright Rene Rivera 2008-2015
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_PLAT_MINGW32_H
+#define BOOST_PREDEF_PLAT_MINGW32_H
+
+#include <boost/predef/version_number.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_PLAT_MINGW32`]
+
+[@http://www.mingw.org/ MinGW] platform.
+Version number available as major, minor, and patch.
+
+[table
+    [[__predef_symbol__] [__predef_version__]]
+
+    [[`__MINGW32__`] [__predef_detection__]]
+
+    [[`__MINGW32_VERSION_MAJOR`, `__MINGW32_VERSION_MINOR`] [V.R.0]]
+    ]
+ */
+
+#define BOOST_PLAT_MINGW32 BOOST_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__MINGW32__)
+#   include <_mingw.h>
+#   if !defined(BOOST_PLAT_MINGW32_DETECTION) && (defined(__MINGW32_VERSION_MAJOR) && defined(__MINGW32_VERSION_MINOR))
+#       define BOOST_PLAT_MINGW32_DETECTION \
+            BOOST_VERSION_NUMBER(__MINGW32_VERSION_MAJOR,__MINGW32_VERSION_MINOR,0)
+#   endif
+#   if !defined(BOOST_PLAT_MINGW32_DETECTION)
+#       define BOOST_PLAT_MINGW32_DETECTION BOOST_VERSION_NUMBER_AVAILABLE
+#   endif
+#endif
+
+#ifdef BOOST_PLAT_MINGW32_DETECTION
+#   define BOOST_PLAT_MINGW32_AVAILABLE
+#   if defined(BOOST_PREDEF_DETAIL_PLAT_DETECTED)
+#       define BOOST_PLAT_MINGW32_EMULATED BOOST_PLAT_MINGW32_DETECTION
+#   else
+#       undef BOOST_PLAT_MINGW32
+#       define BOOST_PLAT_MINGW32 BOOST_PLAT_MINGW32_DETECTION
+#   endif
+#   include <boost/predef/detail/platform_detected.h>
+#endif
+
+#define BOOST_PLAT_MINGW32_NAME "MinGW"
+
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_MINGW32,BOOST_PLAT_MINGW32_NAME)
+
+#ifdef BOOST_PLAT_MINGW32_EMULATED
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_MINGW32_EMULATED,BOOST_PLAT_MINGW32_NAME)
+#endif
diff --git a/include/boost/predef/platform/mingw64.h b/include/boost/predef/platform/mingw64.h
new file mode 100644
index 0000000..a35dd3e
--- /dev/null
+++ b/include/boost/predef/platform/mingw64.h
@@ -0,0 +1,63 @@
+/*
+Copyright Rene Rivera 2008-2015
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_PLAT_MINGW64_H
+#define BOOST_PREDEF_PLAT_MINGW64_H
+
+#include <boost/predef/version_number.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_PLAT_MINGW64`]
+
+[@https://mingw-w64.org/ MinGW-w64] platform.
+Version number available as major, minor, and patch.
+
+[table
+    [[__predef_symbol__] [__predef_version__]]
+
+    [[`__MINGW64__`] [__predef_detection__]]
+
+    [[`__MINGW64_VERSION_MAJOR`, `__MINGW64_VERSION_MINOR`] [V.R.0]]
+    ]
+ */
+
+#define BOOST_PLAT_MINGW64 BOOST_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__MINGW64__)
+#   include <_mingw.h>
+#   if !defined(BOOST_PLAT_MINGW64_DETECTION) && (defined(__MINGW64_VERSION_MAJOR) && defined(__MINGW64_VERSION_MINOR))
+#       define BOOST_PLAT_MINGW64_DETECTION \
+            BOOST_VERSION_NUMBER(__MINGW64_VERSION_MAJOR,__MINGW64_VERSION_MINOR,0)
+#   endif
+#   if !defined(BOOST_PLAT_MINGW64_DETECTION)
+#       define BOOST_PLAT_MINGW64_DETECTION BOOST_VERSION_NUMBER_AVAILABLE
+#   endif
+#endif
+
+#ifdef BOOST_PLAT_MINGW64_DETECTION
+#   define BOOST_PLAT_MINGW64_AVAILABLE
+#   if defined(BOOST_PREDEF_DETAIL_PLAT_DETECTED)
+#       define BOOST_PLAT_MINGW64_EMULATED BOOST_PLAT_MINGW64_DETECTION
+#   else
+#       undef BOOST_PLAT_MINGW64
+#       define BOOST_PLAT_MINGW64 BOOST_PLAT_MINGW64_DETECTION
+#   endif
+#   include <boost/predef/detail/platform_detected.h>
+#endif
+
+#define BOOST_PLAT_MINGW64_NAME "MinGW-w64"
+
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_MINGW64,BOOST_PLAT_MINGW64_NAME)
+
+#ifdef BOOST_PLAT_MINGW64_EMULATED
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_MINGW64_EMULATED,BOOST_PLAT_MINGW64_NAME)
+#endif
diff --git a/include/boost/predef/platform/windows_desktop.h b/include/boost/predef/platform/windows_desktop.h
new file mode 100644
index 0000000..afb3907
--- /dev/null
+++ b/include/boost/predef/platform/windows_desktop.h
@@ -0,0 +1,51 @@
+/*
+Copyright (c) Microsoft Corporation 2014
+Copyright Rene Rivera 2015
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_PLAT_WINDOWS_DESKTOP_H
+#define BOOST_PREDEF_PLAT_WINDOWS_DESKTOP_H
+
+#include <boost/predef/make.h>
+#include <boost/predef/os/windows.h>
+#include <boost/predef/platform/windows_uwp.h>
+#include <boost/predef/version_number.h>
+
+/*`
+[heading `BOOST_PLAT_WINDOWS_DESKTOP`]
+
+[@https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide UWP]
+for Windows Desktop development.  Also available if the Platform SDK is too
+old to support UWP.
+
+[table
+    [[__predef_symbol__] [__predef_version__]]
+
+    [[`WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP`] [__predef_detection__]]
+    [[`!BOOST_PLAT_WINDOWS_UWP`] [__predef_detection__]]
+    ]
+ */
+
+#define BOOST_PLAT_WINDOWS_DESKTOP BOOST_VERSION_NUMBER_NOT_AVAILABLE
+
+#if BOOST_OS_WINDOWS && \
+    ((defined(WINAPI_FAMILY_DESKTOP_APP) && WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP) || \
+     !BOOST_PLAT_WINDOWS_UWP)
+#   undef BOOST_PLAT_WINDOWS_DESKTOP
+#   define BOOST_PLAT_WINDOWS_DESKTOP BOOST_VERSION_NUMBER_AVAILABLE
+#endif
+ 
+#if BOOST_PLAT_WINDOWS_DESKTOP
+#   define BOOST_PLAT_WINDOWS_DESKTOP_AVAILABLE
+#   include <boost/predef/detail/platform_detected.h>
+#endif
+
+#define BOOST_PLAT_WINDOWS_DESKTOP_NAME "Windows Desktop"
+
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_WINDOWS_DESKTOP,BOOST_PLAT_WINDOWS_DESKTOP_NAME)
diff --git a/include/boost/predef/platform/windows_phone.h b/include/boost/predef/platform/windows_phone.h
new file mode 100644
index 0000000..0ebc76d
--- /dev/null
+++ b/include/boost/predef/platform/windows_phone.h
@@ -0,0 +1,48 @@
+/*
+Copyright (c) Microsoft Corporation 2014
+Copyright Rene Rivera 2015
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_PLAT_WINDOWS_PHONE_H
+#define BOOST_PREDEF_PLAT_WINDOWS_PHONE_H
+
+#include <boost/predef/make.h>
+#include <boost/predef/os/windows.h>
+#include <boost/predef/platform/windows_uwp.h>
+#include <boost/predef/version_number.h>
+
+/*`
+[heading `BOOST_PLAT_WINDOWS_PHONE`]
+
+[@https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide UWP]
+for Windows Phone development.
+
+[table
+    [[__predef_symbol__] [__predef_version__]]
+
+    [[`WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP`] [__predef_detection__]]
+    ]
+ */
+
+#define BOOST_PLAT_WINDOWS_PHONE BOOST_VERSION_NUMBER_NOT_AVAILABLE
+
+#if BOOST_OS_WINDOWS && \
+    defined(WINAPI_FAMILY_PHONE_APP) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
+#   undef BOOST_PLAT_WINDOWS_PHONE
+#   define BOOST_PLAT_WINDOWS_PHONE BOOST_VERSION_NUMBER_AVAILABLE
+#endif
+ 
+#if BOOST_PLAT_WINDOWS_PHONE
+#   define BOOST_PLAT_WINDOWS_PHONE_AVAILABLE
+#   include <boost/predef/detail/platform_detected.h>
+#endif
+
+#define BOOST_PLAT_WINDOWS_PHONE_NAME "Windows Phone"
+
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_WINDOWS_PHONE,BOOST_PLAT_WINDOWS_PHONE_NAME)
diff --git a/include/boost/predef/platform/windows_runtime.h b/include/boost/predef/platform/windows_runtime.h
new file mode 100644
index 0000000..e7978d7
--- /dev/null
+++ b/include/boost/predef/platform/windows_runtime.h
@@ -0,0 +1,53 @@
+/*
+Copyright (c) Microsoft Corporation 2014
+Copyright Rene Rivera 2015
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_PLAT_WINDOWS_RUNTIME_H
+#define BOOST_PREDEF_PLAT_WINDOWS_RUNTIME_H
+
+#include <boost/predef/make.h>
+#include <boost/predef/os/windows.h>
+#include <boost/predef/platform/windows_phone.h>
+#include <boost/predef/platform/windows_store.h>
+#include <boost/predef/version_number.h>
+
+/*`
+[heading `BOOST_PLAT_WINDOWS_RUNTIME`]
+
+Deprecated.
+
+[@https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide UWP]
+for Windows Phone or Store development.  This does not align to the existing development model for
+UWP and is deprecated.  Use one of the other `BOOST_PLAT_WINDOWS_*`definitions instead.
+
+[table
+    [[__predef_symbol__] [__predef_version__]]
+
+    [[`BOOST_PLAT_WINDOWS_PHONE`] [__predef_detection__]]
+    [[`BOOST_PLAT_WINDOWS_STORE`] [__predef_detection__]]
+    ]
+ */
+
+#define BOOST_PLAT_WINDOWS_RUNTIME BOOST_VERSION_NUMBER_NOT_AVAILABLE
+
+#if BOOST_OS_WINDOWS && \
+    (BOOST_PLAT_WINDOWS_STORE || BOOST_PLAT_WINDOWS_PHONE)
+#   undef BOOST_PLAT_WINDOWS_RUNTIME
+#   define BOOST_PLAT_WINDOWS_RUNTIME BOOST_VERSION_NUMBER_AVAILABLE
+#endif
+ 
+#if BOOST_PLAT_WINDOWS_RUNTIME
+#   define BOOST_PLAT_WINDOWS_RUNTIME_AVAILABLE
+#   include <boost/predef/detail/platform_detected.h>
+#endif
+
+#define BOOST_PLAT_WINDOWS_RUNTIME_NAME "Windows Runtime"
+
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_WINDOWS_RUNTIME,BOOST_PLAT_WINDOWS_RUNTIME_NAME)
diff --git a/include/boost/predef/platform/windows_server.h b/include/boost/predef/platform/windows_server.h
new file mode 100644
index 0000000..7bd629d
--- /dev/null
+++ b/include/boost/predef/platform/windows_server.h
@@ -0,0 +1,47 @@
+/*
+Copyright James E. King III, 2017
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_PLAT_WINDOWS_SERVER_H
+#define BOOST_PREDEF_PLAT_WINDOWS_SERVER_H
+
+#include <boost/predef/make.h>
+#include <boost/predef/os/windows.h>
+#include <boost/predef/platform/windows_uwp.h>
+#include <boost/predef/version_number.h>
+
+/*`
+[heading `BOOST_PLAT_WINDOWS_SERVER`]
+
+[@https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide UWP]
+for Windows Server development.
+
+[table
+    [[__predef_symbol__] [__predef_version__]]
+
+    [[`WINAPI_FAMILY == WINAPI_FAMILY_SERVER`] [__predef_detection__]]
+    ]
+ */
+
+#define BOOST_PLAT_WINDOWS_SERVER BOOST_VERSION_NUMBER_NOT_AVAILABLE
+
+#if BOOST_OS_WINDOWS && \
+    defined(WINAPI_FAMILY_SERVER) && WINAPI_FAMILY == WINAPI_FAMILY_SERVER
+#   undef BOOST_PLAT_WINDOWS_SERVER
+#   define BOOST_PLAT_WINDOWS_SERVER BOOST_VERSION_NUMBER_AVAILABLE
+#endif
+ 
+#if BOOST_PLAT_WINDOWS_SERVER
+#   define BOOST_PLAT_WINDOWS_SERVER_AVAILABLE
+#   include <boost/predef/detail/platform_detected.h>
+#endif
+
+#define BOOST_PLAT_WINDOWS_SERVER_NAME "Windows Server"
+
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_WINDOWS_SERVER,BOOST_PLAT_WINDOWS_SERVER_NAME)
diff --git a/include/boost/predef/platform/windows_store.h b/include/boost/predef/platform/windows_store.h
new file mode 100644
index 0000000..3a3fd8e
--- /dev/null
+++ b/include/boost/predef/platform/windows_store.h
@@ -0,0 +1,50 @@
+/*
+Copyright (c) Microsoft Corporation 2014
+Copyright Rene Rivera 2015
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_PLAT_WINDOWS_STORE_H
+#define BOOST_PREDEF_PLAT_WINDOWS_STORE_H
+
+#include <boost/predef/make.h>
+#include <boost/predef/os/windows.h>
+#include <boost/predef/platform/windows_uwp.h>
+#include <boost/predef/version_number.h>
+
+/*`
+[heading `BOOST_PLAT_WINDOWS_STORE`]
+
+[@https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide UWP]
+for Windows Store development.
+
+[table
+    [[__predef_symbol__] [__predef_version__]]
+
+    [[`WINAPI_FAMILY == WINAPI_FAMILY_PC_APP`] [__predef_detection__]]
+    [[`WINAPI_FAMILY == WINAPI_FAMILY_APP` (deprecated)] [__predef_detection__]]
+]
+ */
+
+#define BOOST_PLAT_WINDOWS_STORE BOOST_VERSION_NUMBER_NOT_AVAILABLE
+
+#if BOOST_OS_WINDOWS && \
+    ((defined(WINAPI_FAMILY_PC_APP) && WINAPI_FAMILY == WINAPI_FAMILY_PC_APP) || \
+     (defined(WINAPI_FAMILY_APP)    && WINAPI_FAMILY == WINAPI_FAMILY_APP))
+#   undef BOOST_PLAT_WINDOWS_STORE
+#   define BOOST_PLAT_WINDOWS_STORE BOOST_VERSION_NUMBER_AVAILABLE
+#endif
+ 
+#if BOOST_PLAT_WINDOWS_STORE
+#   define BOOST_PLAT_WINDOWS_STORE_AVAILABLE
+#   include <boost/predef/detail/platform_detected.h>
+#endif
+
+#define BOOST_PLAT_WINDOWS_STORE_NAME "Windows Store"
+
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_WINDOWS_STORE,BOOST_PLAT_WINDOWS_STORE_NAME)
diff --git a/include/boost/predef/platform/windows_system.h b/include/boost/predef/platform/windows_system.h
new file mode 100644
index 0000000..92f424f
--- /dev/null
+++ b/include/boost/predef/platform/windows_system.h
@@ -0,0 +1,47 @@
+/*
+Copyright James E. King III, 2017
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_PLAT_WINDOWS_SYSTEM_H
+#define BOOST_PREDEF_PLAT_WINDOWS_SYSTEM_H
+
+#include <boost/predef/make.h>
+#include <boost/predef/os/windows.h>
+#include <boost/predef/platform/windows_uwp.h>
+#include <boost/predef/version_number.h>
+
+/*`
+[heading `BOOST_PLAT_WINDOWS_SYSTEM`]
+
+[@https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide UWP]
+for Windows System development.
+
+[table
+    [[__predef_symbol__] [__predef_version__]]
+
+    [[`WINAPI_FAMILY == WINAPI_FAMILY_SYSTEM`] [__predef_detection__]]
+    ]
+ */
+
+#define BOOST_PLAT_WINDOWS_SYSTEM BOOST_VERSION_NUMBER_NOT_AVAILABLE
+
+#if BOOST_OS_WINDOWS && \
+    defined(WINAPI_FAMILY_SYSTEM) && WINAPI_FAMILY == WINAPI_FAMILY_SYSTEM
+#   undef BOOST_PLAT_WINDOWS_SYSTEM
+#   define BOOST_PLAT_WINDOWS_SYSTEM BOOST_VERSION_NUMBER_AVAILABLE
+#endif
+ 
+#if BOOST_PLAT_WINDOWS_SYSTEM
+#   define BOOST_PLAT_WINDOWS_SYSTEM_AVAILABLE
+#   include <boost/predef/detail/platform_detected.h>
+#endif
+
+#define BOOST_PLAT_WINDOWS_SYSTEM_NAME "Windows Drivers and Tools"
+
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_WINDOWS_SYSTEM,BOOST_PLAT_WINDOWS_SYSTEM_NAME)
diff --git a/include/boost/predef/platform/windows_uwp.h b/include/boost/predef/platform/windows_uwp.h
new file mode 100644
index 0000000..e4c6647
--- /dev/null
+++ b/include/boost/predef/platform/windows_uwp.h
@@ -0,0 +1,60 @@
+/*
+Copyright James E. King III, 2017
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_PLAT_WINDOWS_UWP_H
+#define BOOST_PREDEF_PLAT_WINDOWS_UWP_H
+
+#include <boost/predef/make.h>
+#include <boost/predef/os/windows.h>
+#include <boost/predef/version_number.h>
+
+/*`
+[heading `BOOST_PLAT_WINDOWS_UWP`]
+
+[@http://docs.microsoft.com/windows/uwp/ Universal Windows Platform]
+is available if the current development environment is capable of targeting 
+UWP development.
+
+[table
+    [[__predef_symbol__] [__predef_version__]]
+
+    [[`__MINGW64_VERSION_MAJOR` from `_mingw.h`] [`>= 3`]]
+    [[`VER_PRODUCTBUILD` from `ntverp.h`] [`>= 9200`]]
+]
+*/
+
+#define BOOST_PLAT_WINDOWS_UWP BOOST_VERSION_NUMBER_NOT_AVAILABLE
+#define BOOST_PLAT_WINDOWS_SDK_VERSION BOOST_VERSION_NUMBER_NOT_AVAILABLE
+
+#if BOOST_OS_WINDOWS
+//  MinGW (32-bit) has no ntverp.h header
+#if !defined(__MINGW32__)
+#   include <ntverp.h>
+#   undef BOOST_PLAT_WINDOWS_SDK_VERSION
+#   define BOOST_PLAT_WINDOWS_SDK_VERSION BOOST_VERSION_NUMBER(0, 0, VER_PRODUCTBUILD)
+#endif
+
+// 9200 is Windows SDK 8.0 from ntverp.h which introduced family support
+#if ((BOOST_PLAT_WINDOWS_SDK_VERSION >= BOOST_VERSION_NUMBER(0, 0, 9200)) || \
+     (defined(__MINGW64__) && __MINGW64_VERSION_MAJOR >= 3))
+#   undef BOOST_PLAT_WINDOWS_UWP
+#   define BOOST_PLAT_WINDOWS_UWP BOOST_VERSION_NUMBER_AVAILABLE
+#endif
+#endif
+
+#if BOOST_PLAT_WINDOWS_UWP
+#   define BOOST_PLAT_WINDOWS_UWP_AVAILABLE
+#   include <boost/predef/detail/platform_detected.h>
+#   include <winapifamily.h>    // Windows SDK
+#endif
+
+#define BOOST_PLAT_WINDOWS_UWP_NAME "Universal Windows Platform"
+
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_WINDOWS_UWP, BOOST_PLAT_WINDOWS_UWP_NAME)