util/IntrusiveSortedList: remove unused class
This commit is contained in:
		 Max Kellermann
					Max Kellermann
				
			
				
					committed by
					
						 Max Kellermann
						Max Kellermann
					
				
			
			
				
	
			
			
			 Max Kellermann
						Max Kellermann
					
				
			
						parent
						
							1ee25b4234
						
					
				
				
					commit
					99da022775
				
			| @@ -1,41 +0,0 @@ | |||||||
| // SPDX-License-Identifier: BSD-2-Clause |  | ||||||
| // author: Max Kellermann <max.kellermann@gmail.com> |  | ||||||
|  |  | ||||||
| #pragma once |  | ||||||
|  |  | ||||||
| #include "IntrusiveList.hxx" |  | ||||||
|  |  | ||||||
| #include <algorithm> // for std::find_if() |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * A variant of #IntrusiveList which is sorted automatically.  There |  | ||||||
|  * are obvious scalability problems with this approach, so use with |  | ||||||
|  * care. |  | ||||||
|  */ |  | ||||||
| template<typename T, typename Compare=typename T::Compare, |  | ||||||
| 	 typename HookTraits=IntrusiveListBaseHookTraits<T>, |  | ||||||
| 	 IntrusiveListOptions options=IntrusiveListOptions{}> |  | ||||||
| class IntrusiveSortedList |  | ||||||
| 	: public IntrusiveList<T, HookTraits, options> |  | ||||||
| { |  | ||||||
| 	using Base = IntrusiveList<T, HookTraits, options>; |  | ||||||
|  |  | ||||||
| 	[[no_unique_address]] |  | ||||||
| 	Compare compare; |  | ||||||
|  |  | ||||||
| public: |  | ||||||
| 	constexpr IntrusiveSortedList() noexcept = default; |  | ||||||
| 	IntrusiveSortedList(IntrusiveSortedList &&src) noexcept = default; |  | ||||||
|  |  | ||||||
| 	using typename Base::reference; |  | ||||||
| 	using Base::begin; |  | ||||||
| 	using Base::end; |  | ||||||
|  |  | ||||||
| 	void insert(reference item) noexcept { |  | ||||||
| 		auto position = std::find_if(begin(), end(), [this, &item](const auto &other){ |  | ||||||
| 			return !compare(other, item); |  | ||||||
| 		}); |  | ||||||
|  |  | ||||||
| 		Base::insert(position, item); |  | ||||||
| 	} |  | ||||||
| }; |  | ||||||
| @@ -279,48 +279,3 @@ TEST(IntrusiveList, Sort) | |||||||
| 	ASSERT_EQ(&*std::next(list.begin(), 1), &items[2]); | 	ASSERT_EQ(&*std::next(list.begin(), 1), &items[2]); | ||||||
| 	ASSERT_EQ(&*std::next(list.begin(), 2), &items[4]); | 	ASSERT_EQ(&*std::next(list.begin(), 2), &items[4]); | ||||||
| } | } | ||||||
|  |  | ||||||
| #include "util/IntrusiveSortedList.hxx" |  | ||||||
|  |  | ||||||
| TEST(IntrusiveSortedList, Basic) |  | ||||||
| { |  | ||||||
| 	using Item = CharItem<IntrusiveHookMode::NORMAL>; |  | ||||||
|  |  | ||||||
| 	struct Compare { |  | ||||||
| 		constexpr bool operator()(const Item &a, const Item &b) noexcept { |  | ||||||
| 			return a.ch < b.ch; |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
|  |  | ||||||
| 	Item items[]{'z', 'a', 'b', 'q', 'b', 'c', 't', 'm', 'y'}; |  | ||||||
|  |  | ||||||
| 	IntrusiveSortedList<Item, Compare> list; |  | ||||||
| 	ASSERT_EQ(ToString(list, list.begin(), 2), "__"); |  | ||||||
|  |  | ||||||
| 	list.insert(items[0]); |  | ||||||
| 	ASSERT_EQ(ToString(list, list.begin(), 3), "z_z"); |  | ||||||
|  |  | ||||||
| 	list.insert(items[1]); |  | ||||||
| 	ASSERT_EQ(ToString(list, list.begin(), 4), "az_a"); |  | ||||||
|  |  | ||||||
| 	list.insert(items[2]); |  | ||||||
| 	ASSERT_EQ(ToString(list, list.begin(), 5), "abz_a"); |  | ||||||
|  |  | ||||||
| 	list.insert(items[3]); |  | ||||||
| 	ASSERT_EQ(ToString(list, list.begin(), 6), "abqz_a"); |  | ||||||
|  |  | ||||||
| 	list.insert(items[4]); |  | ||||||
| 	ASSERT_EQ(ToString(list, list.begin(), 7), "abbqz_a"); |  | ||||||
|  |  | ||||||
| 	list.insert(items[5]); |  | ||||||
| 	ASSERT_EQ(ToString(list, list.begin(), 8), "abbcqz_a"); |  | ||||||
|  |  | ||||||
| 	list.insert(items[6]); |  | ||||||
| 	ASSERT_EQ(ToString(list, list.begin(), 9), "abbcqtz_a"); |  | ||||||
|  |  | ||||||
| 	list.insert(items[7]); |  | ||||||
| 	ASSERT_EQ(ToString(list, list.begin(), 10), "abbcmqtz_a"); |  | ||||||
|  |  | ||||||
| 	list.insert(items[8]); |  | ||||||
| 	ASSERT_EQ(ToString(list, list.begin(), 11), "abbcmqtyz_a"); |  | ||||||
| } |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user