From 10cb35e459f5ecca5b2ff107635da0bfa41011b4 Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Mon, 22 Jun 2020 10:03:06 -0700 Subject: Export of internal Abseil changes -- b548087c24ae7c2c709e8040a118b5e312d18e2e by Derek Mauro : Remove the static initialization of global variables used by absl::Mutex as requested by Chromium PiperOrigin-RevId: 317676541 -- f198f5da1e966772efa978ba019bd23576899794 by Greg Miller : fix: work around gcc-4.8 bug in disjunction See https://godbolt.org/z/i7-AmM for a repro of the bug. I realize that Abseil no longer supports gcc 4.8 officially (https://abseil.io/docs/cpp/platforms/platforms), but Cloud C++ still supports gcc 4.8 officially, and so it would be nice to get this simple fix in. fixes https://github.com/abseil/abseil-cpp/issues/718 PiperOrigin-RevId: 317484459 -- ed233f646530c6c0948213b643cc6919db1bee90 by Chris Kennelly : Avoid determining the size of the duration unit at runtime. PiperOrigin-RevId: 317376300 -- 73d4011c17fcf747a990176924a7adc69d443533 by Greg Falcon : Change spelling of internal detail from `Invoke`/`InvokeT` to `invoke`/`invoke_result_t`. This matches the spelling of the C++17 standard library names that perform the same operations. PiperOrigin-RevId: 317311527 GitOrigin-RevId: b548087c24ae7c2c709e8040a118b5e312d18e2e Change-Id: I131809ff0b92cfdb0d96dc94e94d9c6f751cb0ac --- absl/meta/type_traits.h | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'absl/meta') diff --git a/absl/meta/type_traits.h b/absl/meta/type_traits.h index ba87d2f0..75689bb6 100644 --- a/absl/meta/type_traits.h +++ b/absl/meta/type_traits.h @@ -219,7 +219,7 @@ using void_t = typename type_traits_internal::VoidTImpl::type; // This metafunction is designed to be a drop-in replacement for the C++17 // `std::conjunction` metafunction. template -struct conjunction; +struct conjunction : std::true_type {}; template struct conjunction @@ -228,9 +228,6 @@ struct conjunction template struct conjunction : T {}; -template <> -struct conjunction<> : std::true_type {}; - // disjunction // // Performs a compile-time logical OR operation on the passed types (which @@ -241,7 +238,7 @@ struct conjunction<> : std::true_type {}; // This metafunction is designed to be a drop-in replacement for the C++17 // `std::disjunction` metafunction. template -struct disjunction; +struct disjunction : std::false_type {}; template struct disjunction : @@ -250,9 +247,6 @@ struct disjunction : template struct disjunction : T {}; -template <> -struct disjunction<> : std::false_type {}; - // negation // // Performs a compile-time logical NOT operation on the passed type (which -- cgit v1.2.3