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 {};