more C++11 type handling (enable_if)
This commit is contained in:
parent
f6767a1977
commit
2180bdba87
@ -1,6 +1,6 @@
|
||||
diff -up chromium-62.0.3202.62/base/bind_helpers.h.epel7-c++11 chromium-62.0.3202.62/base/bind_helpers.h
|
||||
--- chromium-62.0.3202.62/base/bind_helpers.h.epel7-c++11 2017-10-25 08:50:15.692276363 -0400
|
||||
+++ chromium-62.0.3202.62/base/bind_helpers.h 2017-10-25 08:50:39.977611740 -0400
|
||||
+++ chromium-62.0.3202.62/base/bind_helpers.h 2017-10-25 09:12:15.889484145 -0400
|
||||
@@ -282,7 +282,7 @@ class PassedWrapper {
|
||||
};
|
||||
|
||||
@ -10,6 +10,27 @@ diff -up chromium-62.0.3202.62/base/bind_helpers.h.epel7-c++11 chromium-62.0.320
|
||||
|
||||
template <typename T>
|
||||
auto Unwrap(T&& o) -> decltype(Unwrapper<T>::Unwrap(std::forward<T>(o))) {
|
||||
@@ -438,7 +438,7 @@ static inline internal::OwnedWrapper<T>
|
||||
// Both versions of Passed() prevent T from being an lvalue reference. The first
|
||||
// via use of enable_if, and the second takes a T* which will not bind to T&.
|
||||
template <typename T,
|
||||
- std::enable_if_t<!std::is_lvalue_reference<T>::value>* = nullptr>
|
||||
+ typename std::enable_if<!std::is_lvalue_reference<T>::value>::type* = nullptr>
|
||||
static inline internal::PassedWrapper<T> Passed(T&& scoper) {
|
||||
return internal::PassedWrapper<T>(std::move(scoper));
|
||||
}
|
||||
@@ -537,9 +537,9 @@ template <typename Functor, typename...
|
||||
struct CallbackCancellationTraits<
|
||||
Functor,
|
||||
std::tuple<BoundArgs...>,
|
||||
- std::enable_if_t<
|
||||
+ typename std::enable_if<
|
||||
internal::IsWeakMethod<internal::FunctorTraits<Functor>::is_method,
|
||||
- BoundArgs...>::value>> {
|
||||
+ BoundArgs...>::value>::type> {
|
||||
static constexpr bool is_cancellable = true;
|
||||
|
||||
template <typename Receiver, typename... Args>
|
||||
diff -up chromium-62.0.3202.62/base/bind.h.epel7-c++11 chromium-62.0.3202.62/base/bind.h
|
||||
--- chromium-62.0.3202.62/base/bind.h.epel7-c++11 2017-10-25 08:55:22.603877014 -0400
|
||||
+++ chromium-62.0.3202.62/base/bind.h 2017-10-25 08:56:41.636714097 -0400
|
||||
@ -77,7 +98,16 @@ diff -up chromium-62.0.3202.62/base/bind.h.epel7-c++11 chromium-62.0.3202.62/bas
|
||||
// This block checks if each |args| matches to the corresponding params of the
|
||||
diff -up chromium-62.0.3202.62/base/bind_internal.h.epel7-c++11 chromium-62.0.3202.62/base/bind_internal.h
|
||||
--- chromium-62.0.3202.62/base/bind_internal.h.epel7-c++11 2017-10-25 08:52:20.018873878 -0400
|
||||
+++ chromium-62.0.3202.62/base/bind_internal.h 2017-10-25 08:55:07.779282724 -0400
|
||||
+++ chromium-62.0.3202.62/base/bind_internal.h 2017-10-25 09:14:48.526096108 -0400
|
||||
@@ -125,7 +125,7 @@ struct FunctorTraits;
|
||||
// to the function type while capturing lambdas can't.
|
||||
template <typename Functor>
|
||||
struct FunctorTraits<Functor,
|
||||
- std::enable_if_t<IsConvertibleToRunType<Functor>::value>> {
|
||||
+ typename std::enable_if<IsConvertibleToRunType<Functor>::value>::type> {
|
||||
using RunType = ExtractCallableRunType<Functor>;
|
||||
static constexpr bool is_method = false;
|
||||
static constexpr bool is_nullable = false;
|
||||
@@ -256,7 +256,7 @@ struct FunctorTraits<RepeatingCallback<R
|
||||
};
|
||||
|
||||
@ -96,6 +126,22 @@ diff -up chromium-62.0.3202.62/base/bind_internal.h.epel7-c++11 chromium-62.0.32
|
||||
static constexpr bool is_weak_call =
|
||||
IsWeakMethod<is_method,
|
||||
std::tuple_element_t<indices, DecayedArgsTuple>...>();
|
||||
@@ -383,13 +383,13 @@ struct BindTypeHelper {
|
||||
};
|
||||
|
||||
template <typename Functor>
|
||||
-std::enable_if_t<FunctorTraits<Functor>::is_nullable, bool> IsNull(
|
||||
+typename std::enable_if<FunctorTraits<Functor>::is_nullable, bool>::type IsNull(
|
||||
const Functor& functor) {
|
||||
return !functor;
|
||||
}
|
||||
|
||||
template <typename Functor>
|
||||
-std::enable_if_t<!FunctorTraits<Functor>::is_nullable, bool> IsNull(
|
||||
+typename std::enable_if<!FunctorTraits<Functor>::is_nullable, bool>::type IsNull(
|
||||
const Functor&) {
|
||||
return false;
|
||||
}
|
||||
@@ -479,33 +479,33 @@ struct MakeBindStateTypeImpl;
|
||||
|
||||
template <typename Functor, typename... BoundArgs>
|
||||
@ -139,7 +185,7 @@ diff -up chromium-62.0.3202.62/base/bind_internal.h.epel7-c++11 chromium-62.0.32
|
||||
template <typename Functor, typename... BoundArgs>
|
||||
diff -up chromium-62.0.3202.62/base/containers/span.h.epel7-c++11 chromium-62.0.3202.62/base/containers/span.h
|
||||
--- chromium-62.0.3202.62/base/containers/span.h.epel7-c++11 2017-10-25 08:51:25.260372472 -0400
|
||||
+++ chromium-62.0.3202.62/base/containers/span.h 2017-10-25 08:52:07.597213826 -0400
|
||||
+++ chromium-62.0.3202.62/base/containers/span.h 2017-10-25 09:13:53.035964265 -0400
|
||||
@@ -27,7 +27,7 @@ template <typename T>
|
||||
struct IsSpanImpl<span<T>> : std::true_type {};
|
||||
|
||||
@ -158,3 +204,47 @@ diff -up chromium-62.0.3202.62/base/containers/span.h.epel7-c++11 chromium-62.0.
|
||||
|
||||
template <typename From, typename To>
|
||||
using IsLegalSpanConversion = std::is_convertible<From*, To*>;
|
||||
@@ -51,7 +51,7 @@ using ContainerHasIntegralSize =
|
||||
|
||||
template <typename From, typename To>
|
||||
using EnableIfLegalSpanConversion =
|
||||
- std::enable_if_t<IsLegalSpanConversion<From, To>::value>;
|
||||
+ typename std::enable_if<IsLegalSpanConversion<From, To>::value>::type;
|
||||
|
||||
// SFINAE check if Container can be converted to a span<T>. Note that the
|
||||
// implementation details of this check differ slightly from the requirements in
|
||||
@@ -67,18 +67,18 @@ using EnableIfLegalSpanConversion =
|
||||
// container.
|
||||
template <typename Container, typename T>
|
||||
using EnableIfSpanCompatibleContainer =
|
||||
- std::enable_if_t<!internal::IsSpan<Container>::value &&
|
||||
+ typename std::enable_if<!internal::IsSpan<Container>::value &&
|
||||
!internal::IsStdArray<Container>::value &&
|
||||
ContainerHasConvertibleData<Container, T>::value &&
|
||||
- ContainerHasIntegralSize<Container>::value>;
|
||||
+ ContainerHasIntegralSize<Container>::value>::type;
|
||||
|
||||
template <typename Container, typename T>
|
||||
using EnableIfConstSpanCompatibleContainer =
|
||||
- std::enable_if_t<std::is_const<T>::value &&
|
||||
+ typename std::enable_if<std::is_const<T>::value &&
|
||||
!internal::IsSpan<Container>::value &&
|
||||
!internal::IsStdArray<Container>::value &&
|
||||
ContainerHasConvertibleData<Container, T>::value &&
|
||||
- ContainerHasIntegralSize<Container>::value>;
|
||||
+ ContainerHasIntegralSize<Container>::value>::type;
|
||||
|
||||
} // namespace internal
|
||||
|
||||
diff -up chromium-62.0.3202.62/ipc/ipc_message_templates.h.epel7-c++11 chromium-62.0.3202.62/ipc/ipc_message_templates.h
|
||||
--- chromium-62.0.3202.62/ipc/ipc_message_templates.h.epel7-c++11 2017-10-25 09:15:02.382879317 -0400
|
||||
+++ chromium-62.0.3202.62/ipc/ipc_message_templates.h 2017-10-25 09:15:36.609343836 -0400
|
||||
@@ -67,7 +67,7 @@ void DispatchToMethodImpl(ObjT* obj,
|
||||
// The following function is for async IPCs which have a dispatcher with an
|
||||
// extra parameter specified using IPC_BEGIN_MESSAGE_MAP_WITH_PARAM.
|
||||
template <typename ObjT, typename P, typename... Args, typename Tuple>
|
||||
-std::enable_if_t<sizeof...(Args) == std::tuple_size<std::decay_t<Tuple>>::value>
|
||||
+typename std::enable_if<sizeof...(Args) == std::tuple_size<std::decay_t<Tuple>>::value>::type
|
||||
DispatchToMethod(ObjT* obj,
|
||||
void (ObjT::*method)(P*, Args...),
|
||||
P* parameter,
|
@ -218,7 +218,7 @@ Patch63: chromium-gn-bootstrap-r17.patch
|
||||
Patch64: chromium-62.0.3202.62-correct-cplusplus-check.patch
|
||||
# epel7 does not know about c++14
|
||||
Patch65: chromium-62.0.3202.62-epel7-noc++14.patch
|
||||
Patch66: chromium-62.0.3202.62-epel7-c++11-decay-type.patch
|
||||
Patch66: chromium-62.0.3202.62-epel7-c++11-decay-enable_if-type.patch
|
||||
|
||||
### Chromium Tests Patches ###
|
||||
Patch100: chromium-46.0.2490.86-use_system_opus.patch
|
||||
|
Loading…
Reference in New Issue
Block a user