#include "di/container/concepts/forward_container.h"
#include "di/container/hash/default_hasher.h"
#include "di/container/hash/hasher.h"
#include "di/container/meta/container_reference.h"
#include "di/function/bind_front.h"
#include "di/function/tag_invoke.h"
#include "di/meta/algorithm.h"
#include "di/meta/constexpr.h"
#include "di/meta/language.h"
#include "di/meta/vocab.h"
#include "di/types/prelude.h"
#include "di/util/bit_cast.h"
#include "di/util/declval.h"
#include "di/util/reference_wrapper.h"
#include "di/vocab/array/array.h"
#include "di/vocab/tuple/tuple_for_each.h"
#include "di/vocab/tuple/tuple_like.h"
#include "di/vocab/tuple/tuple_value.h"
Go to the source code of this file.
Namespaces | |
namespace | di |
namespace | di::container |
namespace | di::container::detail |
namespace | di::concepts |
namespace | di::meta |
namespace | di::container::detail::detail |
Concepts | |
concept | di::concepts::Hashable |
concept | di::container::detail::HashableContainer |
Functions | |
constexpr void | di::container::detail::tag_invoke (types::Tag< hash_write >, concepts::Hasher auto &hasher, HashableContainer auto const &value) |
template<concepts::TupleLike T, concepts::Hasher H> requires (!HashableContainer<T> && detail::HashableTuple<meta::MakeIndexSequence<meta::TupleSize<T>>>()(in_place_type<T>)) | |
constexpr auto | di::container::detail::tag_invoke (types::Tag< hash_write >, H &hasher, T const &value) |
Variables | |
constexpr auto | di::container::hash_write = detail::HashWriteFunction {} |
constexpr auto | di::hash_write |