git-subtree-dir: third_party/unordered_dense git-subtree-split: 231e48c9426bd21c273669e5fdcd042c146975cf
22 lines
707 B
C++
22 lines
707 B
C++
#include <ankerl/unordered_dense.h>
|
|
|
|
#include <doctest.h> // for ResultBuilder, TestCase, REQUIRE
|
|
|
|
#include <cstdint> // for uint64_t
|
|
#include <memory> // for shared_ptr, __unique_ptr_t, make...
|
|
#include <type_traits> // for declval
|
|
|
|
template <typename Ptr>
|
|
void check(Ptr const& ptr) {
|
|
REQUIRE(ankerl::unordered_dense::hash<Ptr>{}(ptr) ==
|
|
ankerl::unordered_dense::hash<decltype(std::declval<Ptr>().get())>{}(ptr.get()));
|
|
}
|
|
|
|
TEST_CASE("hash_smart_ptr") {
|
|
check(std::unique_ptr<uint64_t>{});
|
|
check(std::shared_ptr<uint64_t>{});
|
|
check(std::make_shared<uint64_t>(123U));
|
|
check(std::make_unique<uint64_t>(123U));
|
|
check(std::make_unique<uint64_t>(uint64_t{123U}));
|
|
}
|