diff options
author | 2020-06-22 10:03:06 -0700 | |
---|---|---|
committer | 2020-06-22 14:04:24 -0400 | |
commit | 10cb35e459f5ecca5b2ff107635da0bfa41011b4 (patch) | |
tree | d382b5929817af05d27c0e3e23c800c84e80e892 /absl/meta/type_traits.h | |
parent | 4ccc0fce09836a25b474f4b1453146dae2c29f4d (diff) |
Export of internal Abseil changes
--
b548087c24ae7c2c709e8040a118b5e312d18e2e by Derek Mauro <dmauro@google.com>:
Remove the static initialization of global variables used by absl::Mutex
as requested by Chromium
PiperOrigin-RevId: 317676541
--
f198f5da1e966772efa978ba019bd23576899794 by Greg Miller <jgm@google.com>:
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 <ckennelly@google.com>:
Avoid determining the size of the duration unit at runtime.
PiperOrigin-RevId: 317376300
--
73d4011c17fcf747a990176924a7adc69d443533 by Greg Falcon <gfalcon@google.com>:
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
Diffstat (limited to 'absl/meta/type_traits.h')
-rw-r--r-- | absl/meta/type_traits.h | 10 |
1 files changed, 2 insertions, 8 deletions
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<Ts...>::type; // This metafunction is designed to be a drop-in replacement for the C++17 // `std::conjunction` metafunction. template <typename... Ts> -struct conjunction; +struct conjunction : std::true_type {}; template <typename T, typename... Ts> struct conjunction<T, Ts...> @@ -228,9 +228,6 @@ struct conjunction<T, Ts...> template <typename T> struct conjunction<T> : 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 <typename... Ts> -struct disjunction; +struct disjunction : std::false_type {}; template <typename T, typename... Ts> struct disjunction<T, Ts...> : @@ -250,9 +247,6 @@ struct disjunction<T, Ts...> : template <typename T> struct disjunction<T> : T {}; -template <> -struct disjunction<> : std::false_type {}; - // negation // // Performs a compile-time logical NOT operation on the passed type (which |