diff options
author | Abseil Team <absl-team@google.com> | 2018-07-18 10:04:24 -0700 |
---|---|---|
committer | Ashley Hedberg <ahedberg@google.com> | 2018-07-18 13:09:57 -0400 |
commit | 42f22a28401c952f1fc5942231c7fdac80811bf5 (patch) | |
tree | 3e0b5b07647b5d5bc36fb4ef026027cdb298f7d9 | |
parent | b973bc53ef366f0253b85eeed9a79b241884a843 (diff) |
Export of internal Abseil changes.
--
28b634d3e8e879546e20006b81086a2b02390f1d by Abseil Team <absl-team@google.com>:
Indicate Solaris / Illumos has mmap support
https://github.com/abseil/abseil-cpp/pull/139
This change is **untested** as Abseil does not officially support Solaris/Illumos.
PiperOrigin-RevId: 205094615
--
3c4cc80abcd91c6cd88209a61b50936d1c498bac by Xiaoyi Zhang <zhangxy@google.com>:
Make is_trivially_copy_assignable work with reference types.
PiperOrigin-RevId: 204982099
--
98c6658b3d6cd5eddba9f498747dc84c172ffe05 by Abseil Team <absl-team@google.com>:
Fix typo in comments for c_mismatch.
PiperOrigin-RevId: 204962537
--
deef8b23585f7831d67c1d4b1c9ef7f3e30d9028 by Matt Kulukundis <kfm@google.com>:
Internal change
PiperOrigin-RevId: 204956873
GitOrigin-RevId: 28b634d3e8e879546e20006b81086a2b02390f1d
Change-Id: I1da029f8cb83d83ee5a05f3b0c6a07bc3dd5368e
-rw-r--r-- | absl/algorithm/container.h | 2 | ||||
-rw-r--r-- | absl/container/inlined_vector_test.cc | 1 | ||||
-rw-r--r-- | absl/meta/type_traits.h | 5 | ||||
-rw-r--r-- | absl/meta/type_traits_test.cc | 4 |
4 files changed, 8 insertions, 4 deletions
diff --git a/absl/algorithm/container.h b/absl/algorithm/container.h index acddec48..6af8c097 100644 --- a/absl/algorithm/container.h +++ b/absl/algorithm/container.h @@ -314,7 +314,7 @@ container_algorithm_internal::ContainerDifferenceType<const C> c_count_if( // c_mismatch() // -// Container-based version of the <algorithm> `std::mismatchf()` function to +// Container-based version of the <algorithm> `std::mismatch()` function to // return the first element where two ordered containers differ. template <typename C1, typename C2> container_algorithm_internal::ContainerIterPairType<C1, C2> diff --git a/absl/container/inlined_vector_test.cc b/absl/container/inlined_vector_test.cc index f81fad56..196a1bed 100644 --- a/absl/container/inlined_vector_test.cc +++ b/absl/container/inlined_vector_test.cc @@ -1788,5 +1788,4 @@ TEST(AllocatorSupportTest, SizeAllocConstructor) { EXPECT_THAT(v, AllOf(SizeIs(len), Each(0))); } } - } // anonymous namespace diff --git a/absl/meta/type_traits.h b/absl/meta/type_traits.h index c3e01fe2..8d3264f1 100644 --- a/absl/meta/type_traits.h +++ b/absl/meta/type_traits.h @@ -263,8 +263,9 @@ struct is_trivially_copy_constructible // `is_trivially_assignable<T&, const T&>`. template <typename T> struct is_trivially_copy_assignable - : std::integral_constant<bool, __has_trivial_assign(T) && - std::is_copy_assignable<T>::value> { + : std::integral_constant< + bool, __has_trivial_assign(typename std::remove_reference<T>::type) && + std::is_copy_assignable<T>::value> { #ifdef ABSL_HAVE_STD_IS_TRIVIALLY_ASSIGNABLE private: static constexpr bool compliant = diff --git a/absl/meta/type_traits_test.cc b/absl/meta/type_traits_test.cc index c44d1c5f..9dd95429 100644 --- a/absl/meta/type_traits_test.cc +++ b/absl/meta/type_traits_test.cc @@ -528,6 +528,10 @@ TEST(TypeTraitsTest, TestTrivialCopyAssign) { // Verify that arrays are not trivially copy assignable using int10 = int[10]; EXPECT_FALSE(absl::is_trivially_copy_assignable<int10>::value); + + // Verify that references are handled correctly + EXPECT_TRUE(absl::is_trivially_copy_assignable<Trivial&&>::value); + EXPECT_TRUE(absl::is_trivially_copy_assignable<Trivial&>::value); } #define ABSL_INTERNAL_EXPECT_ALIAS_EQUIVALENCE(trait_name, ...) \ |