| Index: include/private/SkTLogic.h
|
| diff --git a/include/private/SkTLogic.h b/include/private/SkTLogic.h
|
| index a3bc55e14e26aee875a5736d5357d87554870a99..b38fd50435cbccfd5de0dbeff15eca9e0d9fdd88 100644
|
| --- a/include/private/SkTLogic.h
|
| +++ b/include/private/SkTLogic.h
|
| @@ -13,6 +13,8 @@
|
|
|
| #ifndef SkTLogic_DEFINED
|
| #define SkTLogic_DEFINED
|
| +
|
| +#include "SkTypes.h"
|
|
|
| #include <stddef.h>
|
| #include <stdint.h>
|
| @@ -40,7 +42,7 @@
|
| // On all platforms, variadic functions only exist in the c calling convention.
|
| // mcvc 2013 introduced __vectorcall, but it wan't until 2015 that it was added to is_function.
|
| template <typename> struct is_function : std::false_type {};
|
| -#if !defined(WIN32)
|
| +#if !defined(SK_BUILD_FOR_WIN)
|
| template <typename R, typename... Args> struct is_function<R(Args...)> : std::true_type {};
|
| #else
|
| template <typename R, typename... Args> struct is_function<R __cdecl (Args...)> : std::true_type {};
|
| @@ -48,7 +50,7 @@
|
| template <typename R, typename... Args> struct is_function<R __stdcall (Args...)> : std::true_type {};
|
| template <typename R, typename... Args> struct is_function<R __fastcall (Args...)> : std::true_type {};
|
| #endif
|
| -#if defined(_MSC_VER) && (_M_IX86_FP >= 2 || defined(_M_AMD64) || defined(_M_X64))
|
| +#if defined(_MSC_VER) && SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2
|
| template <typename R, typename... Args> struct is_function<R __vectorcall (Args...)> : std::true_type {};
|
| #endif
|
| #endif
|
| @@ -61,7 +63,6 @@
|
| template <typename T> using add_lvalue_reference_t = typename std::add_lvalue_reference<T>::type;
|
|
|
| template <typename... T> using common_type_t = typename std::common_type<T...>::type;
|
| -template <typename T> using underlying_type_t = typename std::underlying_type<T>::type;
|
|
|
| template <typename S, typename D,
|
| bool=std::is_void<S>::value || is_function<D>::value || std::is_array<D>::value>
|
|
|