Go to the documentation of this file.
15 #ifndef ABSL_CONTAINER_INTERNAL_CONTAINER_H_
16 #define ABSL_CONTAINER_INTERNAL_CONTAINER_H_
19 #include <type_traits>
21 #include "absl/meta/type_traits.h"
22 #include "absl/types/optional.h"
26 namespace container_internal {
28 template <
class,
class =
void>
34 template <
bool is_transparent>
37 template <
typename K,
typename key_type>
44 template <
typename K,
typename key_type>
51 template <
typename PolicyTraits,
typename Alloc>
88 template <
typename...
Args>
102 assert(
alloc_.has_value());
118 template <
typename Policy,
typename PolicyTraits,
typename Alloc,
137 template <
typename Policy,
typename PolicyTraits,
typename Alloc>
153 -> decltype(PolicyTraits::mutable_key(
std::declval<
slot_type*>())) {
154 return PolicyTraits::mutable_key(this->
slot());
169 template <
typename Node>
174 template <
typename Node>
179 template <
typename Node>
184 template <
typename T,
typename...
Args>
186 return T(
typename T::transfer_tag_t{}, std::forward<Args>(
args)...);
189 template <
typename T,
typename...
Args>
191 return T(
typename T::construct_tag_t{}, std::forward<Args>(
args)...);
196 template <
class Iterator,
class NodeType>
207 #endif // ABSL_CONTAINER_INTERNAL_CONTAINER_H_
allocator_type get_allocator() const
static std::function< Slot &(Slot *)> element
static void Destroy(Node *node)
integral_constant< bool, true > true_type
integral_constant< bool, false > false_type
node_handle_base(node_handle_base &&other) noexcept
#define ABSL_NAMESPACE_END
typename Policy::key_type key_type
#define T(upbtypeconst, upbtype, ctype, default_value)
static auto GetSlot(const Node &node) -> decltype(node.slot())
static T Construct(Args &&... args)
auto key() const -> decltype(PolicyTraits::mutable_key(std::declval< slot_type * >()))
#define ABSL_NAMESPACE_BEGIN
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
node_handle_base(transfer_tag_t, const allocator_type &a, slot_type *s)
static T Transfer(Args &&... args)
absl::optional< allocator_type > alloc_
mapped_type & mapped() const
typename Policy::mapped_type mapped_type
void * Alloc(FlagOpFn op)
static std::function< void(void *, Slot *, Slot *)> transfer
unsigned char slot_space_[sizeof(slot_type)]
typename type_traits_internal::VoidTImpl< Ts... >::type void_t
static std::function< void(void *, Slot *, Slot)> construct
static void Reset(Node *node)
typename PolicyTraits::slot_type slot_type
node_handle_base & operator=(node_handle_base &&other) noexcept
value_type & value() const
bool empty() const noexcept
constexpr node_handle_base()=default
typename PolicyTraits::value_type value_type
static std::function< void(void *, Slot *)> destroy
node_handle_base(construct_tag_t, const allocator_type &a, Args &&... args)
grpc
Author(s):
autogenerated on Fri May 16 2025 02:57:59