summaryrefslogtreecommitdiffstats
path: root/external/boost/sse.patch.0
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2019-01-11 17:40:17 +0100
committerStephan Bergmann <sbergman@redhat.com>2019-01-15 08:24:05 +0100
commit23a8d5ffbbe58761b89f590f0735abccd69a3681 (patch)
tree44b17f1202dc6e49321b7eba538e17fd9f818770 /external/boost/sse.patch.0
parentUse proper iterator in loop body (diff)
downloadcore-23a8d5ffbbe58761b89f590f0735abccd69a3681.tar.gz
core-23a8d5ffbbe58761b89f590f0735abccd69a3681.zip
Upgrade external/boost to Boost 1.69.0
<https://dev-www.libreoffice.org/src/boost_1_69_0.tar.bz2> is a copy of <https://dl.bintray.com/boostorg/release/1.69.0/source/boost_1_69_0.tar.bz2>, SHA256 hash as given at <https://www.boost.org/users/download/>. * removed from external/boost/include/boost/ those files that are no longer present in workdir/UnpackedTarball/boost/boost/ * the shrunk external/boost/rtti.patch.0 can probably be removed completely in a follow-up commit * the patch to libs/filesystem/src/operations.cpp in external/boost/boost-android-unified.patch.1 no longer applied, and appears to be no longer necessary anyway (seeing a working build without it of --with-distro=LibreOfficeAndroid and NDK r16b); but with the non-standard Clang 5.0.300080 from NDK r16b, the build now caused failures like > workdir/UnpackedTarball/boost/boost/type_traits/detail/is_function_cxx_11.hpp:36:11: error: class template partial specialization contains a template parameter that cannot be deduced; this partial specialization will never be used [-Wunusable-partial-specialization] > struct is_function<Ret BOOST_TT_DEF_CALL(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {}; > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > workdir/UnpackedTarball/boost/boost/type_traits/detail/is_function_cxx_11.hpp:35:38: note: non-deducible template parameter 'NE' > template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM> > ^ > workdir/UnpackedTarball/boost/boost/type_traits/detail/is_function_cxx_11.hpp:22:40: note: expanded from macro 'BOOST_TT_NOEXCEPT_PARAM' > #define BOOST_TT_NOEXCEPT_PARAM , bool NE > ^ showing that that version of Clang has the same problem handling noexcept(b) as a deduced template parameter as MSVC has, as already supported by the code * new external/boost/sse.patch.0 needed on Windows x86 to silence errors like > C:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\UnpackedTarball\boost\boost/type_traits/detail/is_function_cxx_11.hpp(111): error C2215: '__vectorcall' cannot be used with '/arch:SSE' (<https://ci.libreoffice.org/job/gerrit_windows/26117/>); according to <https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros ?view=vs-2017>: "_M_IX86_FP Defined as an integer literal value that indicates the /arch compiler option that was set, or the default. This macro is always defined when the compilation target is an x86 processor. Otherwise, undefined. When defined, the value is: [...] 1 if the /arch:SSE compiler option was set." and we specify /arch:SSE explicitly for Windows x86 since 8bd6bf93b7711a7ac7c5cbd7c3bb980481570ebd "fdo#82430: configure: MSVC build: avoid using SSE2 instructions" * boost::logic::tribool conversion operator to bool is explicit now Change-Id: Iea49560d734f545539f062dce46740fbf812dd84 Reviewed-on: https://gerrit.libreoffice.org/66189 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'external/boost/sse.patch.0')
-rw-r--r--external/boost/sse.patch.0533
1 files changed, 533 insertions, 0 deletions
diff --git a/external/boost/sse.patch.0 b/external/boost/sse.patch.0
new file mode 100644
index 000000000000..d431c185e7f8
--- /dev/null
+++ b/external/boost/sse.patch.0
@@ -0,0 +1,533 @@
+--- boost/type_traits/detail/is_function_cxx_11.hpp
++++ boost/type_traits/detail/is_function_cxx_11.hpp
+@@ -107,8 +107,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const:
+ #ifdef __CLR_VER
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -120,8 +122,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -133,8 +137,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -146,8 +152,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+
+ // reference qualified:
+ #ifdef __CLR_VER
+@@ -160,8 +168,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const:
+ #ifdef __CLR_VER
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -173,8 +183,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)const &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)const &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -186,8 +198,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -199,8 +213,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)const volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)const volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+
+ // rvalue reference qualified:
+ #ifdef __CLR_VER
+@@ -213,8 +229,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)&&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)&&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const:
+ #ifdef __CLR_VER
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -226,8 +244,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)const &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)const &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -239,8 +259,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -252,8 +274,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)const volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)const volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+
+ #endif // _MSC_VER
+
+@@ -339,8 +363,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const:
+ #ifdef __CLR_VER
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -352,8 +378,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -365,8 +393,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -378,8 +408,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+
+ // reference qualified:
+ #ifdef __CLR_VER
+@@ -392,8 +424,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const:
+ #ifdef __CLR_VER
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -405,8 +439,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)const &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)const &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -418,8 +454,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -431,8 +469,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)const volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)const volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+
+ // rvalue reference qualified:
+ #ifdef __CLR_VER
+@@ -445,8 +485,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...) && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...) && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const:
+ #ifdef __CLR_VER
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -458,8 +500,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)const &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)const &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -471,8 +515,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -484,8 +530,10 @@
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __fastcall(Args...)const volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_function<Ret __vectorcall(Args...)const volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+
+ #endif // _MSC_VER
+
+--- boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp
++++ boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp
+@@ -121,8 +121,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret (__vectorcall C::*)(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const:
+ #ifdef __CLR_VER
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -136,8 +138,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret (__vectorcall C::*)(Args...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -151,8 +155,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret (__vectorcall C::*)(Args...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -166,8 +172,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret (__vectorcall C::*)(Args...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+
+ // reference qualified:
+ #ifdef __CLR_VER
+@@ -182,8 +190,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret (__vectorcall C::*)(Args...)&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const:
+ #ifdef __CLR_VER
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -197,8 +207,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)const &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret (__vectorcall C::*)(Args...)const &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -212,8 +224,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret (__vectorcall C::*)(Args...)volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -227,8 +241,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)const volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret (__vectorcall C::*)(Args...)const volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+
+ // rvalue reference qualified:
+ #ifdef __CLR_VER
+@@ -243,8 +259,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...) && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret (__vectorcall C::*)(Args...) && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const:
+ #ifdef __CLR_VER
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -258,8 +276,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)const &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret (__vectorcall C::*)(Args...)const &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -273,8 +293,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret (__vectorcall C::*)(Args...)volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -288,9 +310,11 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)const volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret (__vectorcall C::*)(Args...)const volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#endif
+
+
+ #if defined(_MSVC_LANG) && (_MSVC_LANG >= 201703)
+@@ -375,8 +399,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__vectorcall C::*)(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const:
+ #ifdef __CLR_VER
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -390,8 +416,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__vectorcall C::*)(Args...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -405,8 +433,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__vectorcall C::*)(Args...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -420,8 +450,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__vectorcall C::*)(Args...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+
+ // reference qualified:
+ #ifdef __CLR_VER
+@@ -436,8 +468,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__vectorcall C::*)(Args...)&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const:
+ #ifdef __CLR_VER
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -451,8 +485,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)const &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__vectorcall C::*)(Args...)const &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -466,8 +502,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__vectorcall C::*)(Args...)volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -481,8 +519,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)const volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__vectorcall C::*)(Args...)const volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+
+ // rvalue reference qualified:
+ #ifdef __CLR_VER
+@@ -497,8 +537,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...) && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__vectorcall C::*)(Args...) && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const:
+ #ifdef __CLR_VER
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -512,8 +554,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)const &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__vectorcall C::*)(Args...)const &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -527,8 +571,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__vectorcall C::*)(Args...)volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ // const volatile:
+ #ifdef __CLR_VER
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+@@ -542,8 +588,10 @@
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__cdecl C::*)(Args...)const volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
+ #endif
++#if !(defined _M_IX86_FP && _M_IX86_FP == 1) // error C2215: '__vectorcall' cannot be used with '/arch:SSE'
+ template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
+ struct is_member_function_pointer<Ret(__vectorcall C::*)(Args...)const volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
++#endif
+ #endif
+
+