[Libreoffice-commits] core.git: download.lst external/boost sfx2/source ucb/Library_ucpcmis1.mk

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Tue Jan 15 07:24:28 UTC 2019


 download.lst                                 |    4 
 external/boost/UnpackedTarball_boost.mk      |    3 
 external/boost/boost-android-unified.patch.1 |   46 +-
 external/boost/boost.noiconv.patch           |    6 
 external/boost/clang-cl.patch.0              |   18 
 external/boost/include/boost/uuid/sha1.hpp   |   28 -
 external/boost/msvc2017.patch.0              |   22 -
 external/boost/rtti.patch.0                  |    9 
 external/boost/sse.patch.0                   |  533 +++++++++++++++++++++++++++
 sfx2/source/appl/shutdownicon.cxx            |    2 
 ucb/Library_ucpcmis1.mk                      |   11 
 11 files changed, 572 insertions(+), 110 deletions(-)

New commits:
commit 23a8d5ffbbe58761b89f590f0735abccd69a3681
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Fri Jan 11 17:40:17 2019 +0100
Commit:     Stephan Bergmann <sbergman at redhat.com>
CommitDate: Tue Jan 15 08:24:05 2019 +0100

    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 at redhat.com>
    Tested-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/download.lst b/download.lst
index d6d35ed7d422..d43cdf06f27d 100644
--- a/download.lst
+++ b/download.lst
@@ -6,8 +6,8 @@ export APR_SHA256SUM := 1af06e1720a58851d90694a984af18355b65bb0d047be03ec7d659c7
 export APR_TARBALL := apr-1.5.2.tar.gz
 export APR_UTIL_SHA256SUM := 976a12a59bc286d634a21d7be0841cc74289ea9077aa1af46be19d1a6e844c19
 export APR_UTIL_TARBALL := apr-util-1.5.4.tar.gz
-export BOOST_SHA256SUM := 5721818253e6a0989583192f96782c4a98eb6204965316df9f5ad75819225ca9
-export BOOST_TARBALL := boost_1_66_0.tar.bz2
+export BOOST_SHA256SUM := 8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406
+export BOOST_TARBALL := boost_1_69_0.tar.bz2
 export BREAKPAD_SHA256SUM := 7060149be16a8789b0ccf596bdeaf63115f03f520acb508f72a14686fb311cb9
 export BREAKPAD_TARBALL := breakpad.zip
 export BSH_SHA256SUM := 9e93c73e23aff644b17dfff656444474c14150e7f3b38b19635e622235e01c96
diff --git a/external/boost/UnpackedTarball_boost.mk b/external/boost/UnpackedTarball_boost.mk
index ca83476d95ee..86f52ded439e 100644
--- a/external/boost/UnpackedTarball_boost.mk
+++ b/external/boost/UnpackedTarball_boost.mk
@@ -30,7 +30,6 @@ boost_patches += clang-cl.patch.0
 boost_patches += boost_1_60_0.undef.warning.patch
 boost_patches += boost_1_63_0.undef.warning.patch.1
 
-# https://svn.boost.org/trac10/ticket/13230
 boost_patches += boost-android-unified.patch.1
 
 boost_patches += windows-no-utf8-locales.patch.0
@@ -39,6 +38,8 @@ boost_patches += gcc9.patch.0
 
 boost_patches += msvc2017.patch.0
 
+boost_patches += sse.patch.0
+
 $(eval $(call gb_UnpackedTarball_UnpackedTarball,boost))
 
 $(eval $(call gb_UnpackedTarball_set_tarball,boost,$(BOOST_TARBALL)))
diff --git a/external/boost/boost-android-unified.patch.1 b/external/boost/boost-android-unified.patch.1
index 458482a37c28..46181b862f49 100644
--- a/external/boost/boost-android-unified.patch.1
+++ b/external/boost/boost-android-unified.patch.1
@@ -1,28 +1,22 @@
-https://svn.boost.org/trac10/ticket/13230 unified headers causing trouble with that..
-diff -ur boost.org/libs/filesystem/src/operations.cpp boost/libs/filesystem/src/operations.cpp
---- boost.org/libs/filesystem/src/operations.cpp	2017-11-22 02:21:33.724304181 +0100
-+++ boost/libs/filesystem/src/operations.cpp	2017-11-22 02:21:59.686302450 +0100
-@@ -11,23 +11,6 @@
- //--------------------------------------------------------------------------------------// 
+--- a/boost/type_traits/detail/is_function_cxx_11.hpp
++++ b/boost/type_traits/detail/is_function_cxx_11.hpp
+@@ -18,7 +18,7 @@
+    template <class T>
+    struct is_function : public false_type {};
  
- //  define 64-bit offset macros BEFORE including boost/config.hpp (see ticket #5355) 
--#if !(defined(__HP_aCC) && defined(_ILP32) && !defined(_STATVFS_ACPP_PROBLEMS_FIXED))
--#define _FILE_OFFSET_BITS 64 // at worst, these defines may have no effect,
--#endif
--#if !defined(__PGI)
--#define __USE_FILE_OFFSET64 // but that is harmless on Windows and on POSIX
--      // 64-bit systems or on 32-bit systems which don't have files larger 
--      // than can be represented by a traditional POSIX/UNIX off_t type. 
--      // OTOH, defining them should kick in 64-bit off_t's (and thus 
--      // st_size)on 32-bit systems that provide the Large File
--      // Support (LFS)interface, such as Linux, Solaris, and IRIX.
--      // The defines are given before any headers are included to
--      // ensure that they are available to all included headers.
--      // That is required at least on Solaris, and possibly on other
--      // systems as well.
--#else
--#define _FILE_OFFSET_BITS 64
--#endif
+-#if defined(__cpp_noexcept_function_type) && !defined(_MSC_VER)
++#if defined(__cpp_noexcept_function_type) && !defined(_MSC_VER) && !(defined __ANDROID__ && defined __clang__ && __clang_major__ == 5 && __clang_minor__ == 0 && __clang_patchlevel__ == 300080)
+ #define BOOST_TT_NOEXCEPT_PARAM , bool NE
+ #define BOOST_TT_NOEXCEPT_DECL noexcept(NE)
+ #else
+--- a/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp
++++ b/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp
+@@ -31,7 +31,7 @@
+    template <class T>
+    struct is_member_function_pointer<T const volatile> : public is_member_function_pointer<T> {};
  
- // define BOOST_FILESYSTEM_SOURCE so that <boost/filesystem/config.hpp> knows
- // the library is being built (possibly exporting rather than importing code)
+-#if defined(_MSVC_LANG) && (_MSVC_LANG >= 201703) 
++#if (defined(_MSVC_LANG) && (_MSVC_LANG >= 201703)) || (defined __ANDROID__ && defined __clang__ && __clang_major__ == 5 && __clang_minor__ == 0 && __clang_patchlevel__ == 300080)
+    // MSVC can't handle noexcept(b) as a deduced template parameter 
+    // so we will have to write everything out :(
+ #define BOOST_TT_NOEXCEPT_PARAM
diff --git a/external/boost/boost.noiconv.patch b/external/boost/boost.noiconv.patch
index 5ea0aab385a8..1bce0414d4ba 100644
--- a/external/boost/boost.noiconv.patch
+++ b/external/boost/boost.noiconv.patch
@@ -6,7 +6,7 @@ diff -ru boost.orig/boost/libs/locale/src/encoding/codepage.cpp boost/boost/libs
                                              method_type how)
                  {
 +                    #if defined(BOOST_LOCALE_WITH_ICONV) || defined(BOOST_LOCALE_WITH_ICU) || defined(BOOST_LOCALE_WITH_WCONV)
-                     std::auto_ptr<converter_between> cvt;
+                     hold_ptr<converter_between> cvt;
                      #ifdef BOOST_LOCALE_WITH_ICONV
                      cvt.reset(new iconv_between());
 @@ -55,6 +56,7 @@
@@ -22,7 +22,7 @@ diff -ru boost.orig/boost/libs/locale/src/encoding/codepage.cpp boost/boost/libs
                                          method_type how)
                  {
 +                    #if defined(BOOST_LOCALE_WITH_ICONV) || defined(BOOST_LOCALE_WITH_ICU) || defined(BOOST_LOCALE_WITH_WCONV)
-                     std::auto_ptr<converter_to_utf<CharType> > cvt;
+                     hold_ptr<converter_to_utf<CharType> > cvt;
                      #ifdef BOOST_LOCALE_WITH_ICONV
                      cvt.reset(new iconv_to_utf<CharType>());
 @@ -81,6 +84,7 @@
@@ -38,7 +38,7 @@ diff -ru boost.orig/boost/libs/locale/src/encoding/codepage.cpp boost/boost/libs
                                          method_type how)
                  {
 +                    #if defined(BOOST_LOCALE_WITH_ICONV) || defined(BOOST_LOCALE_WITH_ICU) || defined(BOOST_LOCALE_WITH_WCONV)
-                     std::auto_ptr<converter_from_utf<CharType> > cvt;
+                     hold_ptr<converter_from_utf<CharType> > cvt;
                      #ifdef BOOST_LOCALE_WITH_ICONV
                      cvt.reset(new iconv_from_utf<CharType>());
 @@ -107,6 +112,7 @@
diff --git a/external/boost/clang-cl.patch.0 b/external/boost/clang-cl.patch.0
index e563c637e2c3..8834e4e626f3 100644
--- a/external/boost/clang-cl.patch.0
+++ b/external/boost/clang-cl.patch.0
@@ -19,24 +19,6 @@
    typedef array_iterator<T,T*,mpl::size_t<NumDims>,reference,
                           mutable_iterator_tag> iterator;
 
-# workdir/UnpackedTarball/boost\boost/smart_ptr/detail/yield_k.hpp(63,29) :  error: 'Sleep' redeclared without 'dllimport' attribute: previous 'dll# import' ignored [-Werror,-Winconsistent-dllimport]
-#   extern "C" void __stdcall Sleep( unsigned long ms );
-#                             ^
-# C:/PROGRA~2/WI3CF2~1/8.1/include/um\synchapi.h(908,1) :  note: previous declaration is here
-# Sleep(
-# ^
---- boost/smart_ptr/detail/yield_k.hpp
-+++ boost/smart_ptr/detail/yield_k.hpp
-@@ -61,7 +61,7 @@
- 
- #if !defined( BOOST_USE_WINDOWS_H ) && !BOOST_PLAT_WINDOWS_RUNTIME
- #if !BOOST_COMP_CLANG || !defined __MINGW32__
--  extern "C" void __stdcall Sleep( unsigned long ms );
-+  extern "C" __declspec(dllimport) void __stdcall Sleep( unsigned long ms );
- #else
- #include <_mingw.h>
- #if !defined __MINGW64_VERSION_MAJOR
-
 # workdir/UnpackedTarball/boost/libs/thread/src/win32/thread.cpp(1006,36) :  error: dllimport cannot be applied to non-inline function definition
 #     BOOST_THREAD_DECL void __cdecl on_process_enter()
 #                                    ^
diff --git a/external/boost/include/boost/uuid/sha1.hpp b/external/boost/include/boost/uuid/sha1.hpp
deleted file mode 100644
index fbf81e6d34bb..000000000000
--- a/external/boost/include/boost/uuid/sha1.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-/* generated by bin/gen-boost-headers, do not edit! */
-#pragma once
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wpragmas"  /* first! for GCC */
-#pragma GCC diagnostic ignored "-Wunknown-warning-option" // second! for Clang 5
-#pragma GCC diagnostic ignored "-Wdelete-non-virtual-dtor"
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#pragma GCC diagnostic ignored "-Wdeprecated-copy"
-#pragma GCC diagnostic ignored "-Wextra"
-#pragma GCC diagnostic ignored "-Wignored-qualifiers"
-#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
-#pragma GCC diagnostic ignored "-Winvalid-constexpr"
-#pragma GCC diagnostic ignored "-Wmicrosoft-unqualified-friend"
-#pragma GCC diagnostic ignored "-Wnon-virtual-dtor"
-#pragma GCC diagnostic ignored "-Wparentheses"
-#pragma GCC diagnostic ignored "-Wplacement-new"
-#pragma GCC diagnostic ignored "-Wreturn-type"
-#pragma GCC diagnostic ignored "-Wshadow"
-#pragma GCC diagnostic ignored "-Wstrict-aliasing"
-#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
-#pragma GCC diagnostic ignored "-Wtype-limits"
-#pragma GCC diagnostic ignored "-Wundef"
-#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
-#pragma GCC diagnostic ignored "-Wunused-macros"
-#pragma GCC diagnostic ignored "-Wunused-parameter"
-#pragma GCC diagnostic ignored "-Wunused-variable"
-#include_next <boost/uuid/sha1.hpp>
-#pragma GCC diagnostic pop
diff --git a/external/boost/msvc2017.patch.0 b/external/boost/msvc2017.patch.0
index e888fd96aba4..4b1002a17e96 100644
--- a/external/boost/msvc2017.patch.0
+++ b/external/boost/msvc2017.patch.0
@@ -1,25 +1,3 @@
---- boost/circular_buffer/details.hpp
-+++ boost/circular_buffer/details.hpp
-@@ -216,12 +216,19 @@
- // Helper types
- 
-     //! Base iterator.
-+#if defined _MSC_VER && !defined __clang__
-+#pragma warning(push)
-+#pragma warning(disable: 4996)
-+#endif
-     typedef std::iterator<
-         std::random_access_iterator_tag,
-         typename Traits::value_type,
-         typename Traits::difference_type,
-         typename Traits::pointer,
-         typename Traits::reference> base_iterator;
-+#if defined _MSC_VER && !defined __clang__
-+#pragma warning(pop)
-+#endif
- 
-     //! Non-const iterator.
-     typedef iterator<Buff, typename Traits::nonconst_self> nonconst_self;
 --- boost/iterator.hpp
 +++ boost/iterator.hpp
 @@ -13,7 +13,14 @@
diff --git a/external/boost/rtti.patch.0 b/external/boost/rtti.patch.0
index 104fd17989a1..249977a68721 100644
--- a/external/boost/rtti.patch.0
+++ b/external/boost/rtti.patch.0
@@ -2,15 +2,6 @@ Visible function type RTTI for Clang -fsanitize=function
 
 --- boost/function/function_base.hpp
 +++ boost/function/function_base.hpp
-@@ -97,7 +97,7 @@
-         } obj_ref;
-       };
- 
--      union function_buffer
-+      union BOOST_SYMBOL_VISIBLE function_buffer
-       {
-         // Type-specific union members
-         mutable function_buffer_members members;
 @@ -159,7 +159,7 @@
        };
  
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
+ 
+ 
diff --git a/sfx2/source/appl/shutdownicon.cxx b/sfx2/source/appl/shutdownicon.cxx
index a24e254c7948..65c73de125d9 100644
--- a/sfx2/source/appl/shutdownicon.cxx
+++ b/sfx2/source/appl/shutdownicon.cxx
@@ -144,7 +144,7 @@ bool LoadModule()
 #endif // ENABLE_QUICKSTART_APPLET
     }
     assert(!boost::logic::indeterminate(loaded));
-    return loaded;
+    return bool(loaded);
 }
 
 }
diff --git a/ucb/Library_ucpcmis1.mk b/ucb/Library_ucpcmis1.mk
index 03117a16a0d1..60761adbc08e 100644
--- a/ucb/Library_ucpcmis1.mk
+++ b/ucb/Library_ucpcmis1.mk
@@ -33,6 +33,17 @@ $(eval $(call gb_Library_use_externals,ucpcmis1,\
 	libxml2 \
 ))
 
+# On Windows, libcmis.lib(ws-relatedmultipart.o) references BCryptCloseAlgorithmProvider,
+# BCryptGenRandom, and BCryptOpenAlgorithmProvider via
+# workdir/UnpackedTarball/boost/boost/winapi/bcrypt.hpp:
+ifeq ($(OS),WNT)
+ifeq ($(SYSTEM_LIBCMIS)$(SYSTEM_BOOST),)
+$(eval $(call gb_Library_add_libs,ucpcmis1, \
+    Bcrypt.lib \
+))
+endif
+endif
+
 $(eval $(call gb_Library_add_exception_objects,ucpcmis1,\
 	ucb/source/ucp/cmis/auth_provider \
 	ucb/source/ucp/cmis/certvalidation_handler \


More information about the Libreoffice-commits mailing list