Files
clang-p2996/libcxx/test/std/containers/sequences/vector.bool/enabled_hash.pass.cpp
A. Jiang e9ce752769 [libc++] Remove the constexpr hash<vector<bool>> extension (#132617)
libc++ makes the `hash<vector<bool, A>>::operator()` `constexpr` since
C++20, which is a conforming extension, but it was unintended.

This patch removes the extension, with an escape hatch macro for it, and
the escape hatch will be removed in the future. Test cases for
`constexpr` along with the assumption of hash values are moved to the
`libcxx/test/libcxx/` subdirectory.

---------

Co-authored-by: Louis Dionne <ldionne.2@gmail.com>
2025-05-14 07:20:27 +08:00

33 lines
831 B
C++

//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03
// <vector>
// Test that <vector> provides all of the arithmetic, enum, and pointer
// hash specializations.
#include <vector>
#include "poisoned_hash_helper.h"
#include "test_macros.h"
#include "min_allocator.h"
void test() {
test_hash_enabled<std::vector<bool> >();
test_hash_enabled<std::vector<bool, min_allocator<bool>>>();
}
int main(int, char**) {
test_library_hash_specializations_available();
test();
return 0;
}