Delete absl/strings/internal/stl_type_traits.h. This file is obsolete due to language changes in C++17, which has been the minimum for Abseil for some time. PiperOrigin-RevId: 944596510 Change-Id: If30fffa0b4c55b2efd35b7d1d2ebaab1fab7daa1
diff --git a/CMake/AbseilDll.cmake b/CMake/AbseilDll.cmake index c285038..a3ed65b 100644 --- a/CMake/AbseilDll.cmake +++ b/CMake/AbseilDll.cmake
@@ -352,7 +352,6 @@ "strings/internal/pow10_helper.cc" "strings/internal/pow10_helper.h" "strings/internal/resize_uninitialized.h" - "strings/internal/stl_type_traits.h" "strings/internal/str_format/arg.cc" "strings/internal/str_format/arg.h" "strings/internal/str_format/bind.cc"
diff --git a/absl/strings/BUILD.bazel b/absl/strings/BUILD.bazel index 7990977..1ab3863 100644 --- a/absl/strings/BUILD.bazel +++ b/absl/strings/BUILD.bazel
@@ -61,7 +61,6 @@ "internal/damerau_levenshtein_distance.cc", "internal/memutil.cc", "internal/memutil.h", - "internal/stl_type_traits.h", "internal/str_join_internal.h", "internal/str_split_internal.h", "internal/stringify_sink.cc",
diff --git a/absl/strings/CMakeLists.txt b/absl/strings/CMakeLists.txt index c93d654..a9fa1f9 100644 --- a/absl/strings/CMakeLists.txt +++ b/absl/strings/CMakeLists.txt
@@ -59,7 +59,6 @@ "internal/memutil.h" "internal/stringify_sink.h" "internal/stringify_sink.cc" - "internal/stl_type_traits.h" "internal/str_join_internal.h" "internal/str_split_internal.h" "match.cc"
diff --git a/absl/strings/internal/stl_type_traits.h b/absl/strings/internal/stl_type_traits.h deleted file mode 100644 index 6298921..0000000 --- a/absl/strings/internal/stl_type_traits.h +++ /dev/null
@@ -1,143 +0,0 @@ -// Copyright 2017 The Abseil Authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -// The file provides the IsStrictlyBaseOfAndConvertibleToSTLContainer type -// trait metafunction to assist in working with the _GLIBCXX_DEBUG debug -// wrappers of STL containers. -// -// DO NOT INCLUDE THIS FILE DIRECTLY. Use this file by including -// absl/strings/str_split.h. -// -// IWYU pragma: private, include "absl/strings/str_split.h" - -#ifndef ABSL_STRINGS_INTERNAL_STL_TYPE_TRAITS_H_ -#define ABSL_STRINGS_INTERNAL_STL_TYPE_TRAITS_H_ - -#include <stddef.h> - -#include <array> -#include <bitset> -#include <deque> -#include <forward_list> -#include <list> -#include <map> -#include <set> -#include <type_traits> -#include <unordered_map> -#include <unordered_set> -#include <vector> - -#include "absl/meta/type_traits.h" - -namespace absl { -ABSL_NAMESPACE_BEGIN -namespace strings_internal { - -template <typename To, typename From> -using IsCastableToDerivedSTLContainer = - std::enable_if_t<!std::is_same_v<From, To>, std::is_convertible<From, To>>; - -template <typename C> -std::false_type CastableToDerivedSTLContainer(C*); - -template <typename C, typename V, size_t N> -IsCastableToDerivedSTLContainer<C, std::array<typename C::value_type, N>> -CastableToDerivedSTLContainer(std::array<V, N>*); - -template <typename C, size_t N> -IsCastableToDerivedSTLContainer<C, std::bitset<N>> -CastableToDerivedSTLContainer(std::bitset<N>*); - -template <typename C, typename... U> -IsCastableToDerivedSTLContainer< - C, std::deque<typename C::value_type, typename C::allocator_type>> -CastableToDerivedSTLContainer(std::deque<U...>*); - -template <typename C, typename... U> -IsCastableToDerivedSTLContainer< - C, std::forward_list<typename C::value_type, typename C::allocator_type>> -CastableToDerivedSTLContainer(std::forward_list<U...>*); - -template <typename C, typename... U> -IsCastableToDerivedSTLContainer< - C, std::list<typename C::value_type, typename C::allocator_type>> -CastableToDerivedSTLContainer(std::list<U...>*); - -template <typename C, typename... U> -IsCastableToDerivedSTLContainer< - C, std::map<typename C::key_type, typename C::mapped_type, - typename C::key_compare, typename C::allocator_type>> -CastableToDerivedSTLContainer(std::map<U...>*); - -template <typename C, typename... U> -IsCastableToDerivedSTLContainer< - C, std::multimap<typename C::key_type, typename C::mapped_type, - typename C::key_compare, typename C::allocator_type>> -CastableToDerivedSTLContainer(std::multimap<U...>*); - -template <typename C, typename... U> -IsCastableToDerivedSTLContainer< - C, std::set<typename C::value_type, typename C::key_compare, - typename C::allocator_type>> -CastableToDerivedSTLContainer(std::set<U...>*); - -template <typename C, typename... U> -IsCastableToDerivedSTLContainer< - C, std::multiset<typename C::value_type, typename C::key_compare, - typename C::allocator_type>> -CastableToDerivedSTLContainer(std::multiset<U...>*); - -template <typename C, typename... U> -IsCastableToDerivedSTLContainer< - C, std::unordered_map<typename C::key_type, typename C::mapped_type, - typename C::hasher, typename C::key_equal, - typename C::allocator_type>> -CastableToDerivedSTLContainer(std::unordered_map<U...>*); - -template <typename C, typename... U> -IsCastableToDerivedSTLContainer< - C, std::unordered_multimap<typename C::key_type, typename C::mapped_type, - typename C::hasher, typename C::key_equal, - typename C::allocator_type>> -CastableToDerivedSTLContainer(std::unordered_multimap<U...>*); - -template <typename C, typename... U> -IsCastableToDerivedSTLContainer< - C, std::unordered_set<typename C::key_type, typename C::hasher, - typename C::key_equal, typename C::allocator_type>> -CastableToDerivedSTLContainer(std::unordered_set<U...>*); - -template <typename C, typename... U> -IsCastableToDerivedSTLContainer< - C, - std::unordered_multiset<typename C::key_type, typename C::hasher, - typename C::key_equal, typename C::allocator_type>> -CastableToDerivedSTLContainer(std::unordered_multiset<U...>*); - -template <typename C, typename... U> -IsCastableToDerivedSTLContainer< - C, std::vector<typename C::value_type, typename C::allocator_type>> -CastableToDerivedSTLContainer(std::vector<U...>*); - -template <typename C> -struct IsStrictlyBaseOfAndConvertibleToSTLContainer - : decltype(strings_internal::CastableToDerivedSTLContainer< - absl::remove_cvref_t<C>>( - std::declval<absl::remove_cvref_t<C>*>())) {}; - -} // namespace strings_internal -ABSL_NAMESPACE_END -} // namespace absl -#endif // ABSL_STRINGS_INTERNAL_STL_TYPE_TRAITS_H_
diff --git a/absl/strings/internal/str_split_internal.h b/absl/strings/internal/str_split_internal.h index 1cec468..bda084b 100644 --- a/absl/strings/internal/str_split_internal.h +++ b/absl/strings/internal/str_split_internal.h
@@ -44,10 +44,6 @@ #include "absl/meta/type_traits.h" #include "absl/strings/string_view.h" -#ifdef _GLIBCXX_DEBUG -#include "absl/strings/internal/stl_type_traits.h" -#endif // _GLIBCXX_DEBUG - namespace absl { ABSL_NAMESPACE_BEGIN namespace strings_internal { @@ -231,13 +227,9 @@ struct SplitterIsConvertibleTo : SplitterIsConvertibleToImpl< C, -#ifdef _GLIBCXX_DEBUG - !IsStrictlyBaseOfAndConvertibleToSTLContainer<C>::value && -#endif // _GLIBCXX_DEBUG - !IsInitializerList<std::remove_reference_t<C>>::value && + !IsInitializerList<std::remove_reference_t<C>>::value && HasValueType<C>::value && HasConstIterator<C>::value, - HasMappedType<C>::value> { -}; + HasMappedType<C>::value> {}; template <typename StringType, typename Container, typename = void> struct ShouldUseLifetimeBound : std::false_type {};