From 4436889eb4a8e293c88cae8e6a6330e7e23857d7 Mon Sep 17 00:00:00 2001
From: Jonathan Wakely <jwakely@redhat.com>
Date: Sat, 23 Mar 2024 11:11:17 +0000
Subject: [PATCH] libstdc++: Remove unused helper traits

These are not used anywhere, we have more efficient variable templates
for them instead. They're not documented as extensions, and are easy for
users to write if they need them.

libstdc++-v3/ChangeLog:

	* include/bits/utility.h (__is_in_place_type): Remove.
	* include/std/variant (__is_in_place_tag): Remove.
---
 libstdc++-v3/include/bits/utility.h | 3 ---
 libstdc++-v3/include/std/variant    | 7 -------
 2 files changed, 10 deletions(-)

diff --git a/libstdc++-v3/include/bits/utility.h b/libstdc++-v3/include/bits/utility.h
index 44c74333e924..751ff7b9a277 100644
--- a/libstdc++-v3/include/bits/utility.h
+++ b/libstdc++-v3/include/bits/utility.h
@@ -220,9 +220,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   template<typename _Tp>
     inline constexpr bool __is_in_place_type_v<in_place_type_t<_Tp>> = true;
 
-  template<typename _Tp>
-    using __is_in_place_type = bool_constant<__is_in_place_type_v<_Tp>>;
-
   template<typename>
     inline constexpr bool __is_in_place_index_v = false;
 
diff --git a/libstdc++-v3/include/std/variant b/libstdc++-v3/include/std/variant
index d0f7bd0242f8..12108d07f0b1 100644
--- a/libstdc++-v3/include/std/variant
+++ b/libstdc++-v3/include/std/variant
@@ -1488,13 +1488,6 @@ namespace __detail::__variant
 
       using _Traits = __detail::__variant::_Traits<_Types...>;
 
-      template<typename _Tp>
-	struct __is_in_place_tag : false_type { };
-      template<typename _Tp>
-	struct __is_in_place_tag<in_place_type_t<_Tp>> : true_type { };
-      template<size_t _Np>
-	struct __is_in_place_tag<in_place_index_t<_Np>> : true_type { };
-
       template<typename _Tp>
 	static constexpr bool __not_in_place_tag
 	  = !__is_in_place_type_v<__remove_cvref_t<_Tp>>
-- 
GitLab