diff --git a/AK/BinarySearch.h b/AK/BinarySearch.h index be16f57f7e..6994b94600 100644 --- a/AK/BinarySearch.h +++ b/AK/BinarySearch.h @@ -33,13 +33,13 @@ namespace AK { template -int integral_compare(const T& a, const T& b) +int integral_compare(const typename RemoveConst::Type& a, const typename RemoveConst::Type& b) { return a - b; } template -T* binary_search(Span haystack, const T& needle, Compare compare = integral_compare, size_t* nearby_index = nullptr) +T* binary_search(Span haystack, const typename RemoveConst::Type& needle, Compare compare = integral_compare, size_t* nearby_index = nullptr) { if (haystack.size() == 0) { if (nearby_index) diff --git a/AK/Tests/TestBinarySearch.cpp b/AK/Tests/TestBinarySearch.cpp index a0800b4f61..6e27fd1c60 100644 --- a/AK/Tests/TestBinarySearch.cpp +++ b/AK/Tests/TestBinarySearch.cpp @@ -50,9 +50,9 @@ TEST_CASE(array_doubles) { double doubles[] = { 1.1, 9.9, 33.33 }; - auto test1 = *binary_search({ doubles, 3 }, 1.1, AK::integral_compare); - auto test2 = *binary_search({ doubles, 3 }, 9.9, AK::integral_compare); - auto test3 = *binary_search({ doubles, 3 }, 33.33, AK::integral_compare); + auto test1 = *binary_search(Span { doubles, 3 }, 1.1, AK::integral_compare); + auto test2 = *binary_search(Span { doubles, 3 }, 9.9, AK::integral_compare); + auto test3 = *binary_search(Span { doubles, 3 }, 33.33, AK::integral_compare); EXPECT_EQ(test1, 1.1); EXPECT_EQ(test2, 9.9); EXPECT_EQ(test3, 33.33); @@ -110,7 +110,7 @@ TEST_CASE(no_elements) TEST_CASE(huge_char_array) { - const size_t N = 2147483680; + const size_t N = 2147483680; Bytes span { new (std::nothrow) u8[N], N }; EXPECT(span.data() != nullptr);