template <HashtableCapacityStorageMode StorageMode>

class HashtableCapacityImpl

Defined at line 497 of file ../../third_party/abseil-cpp/src/absl/container/internal/raw_hash_set.h

The number of slots in the backing array. This is always 2^N-1 for an

integer N.

NOTE: this class exists to simplify experiments with different ways to store

capacity within size.

NOTE: we tried experimenting with compressing the capacity and storing it

together with size_: (a) using 6 bits to store the corresponding power (N in

2^N-1), and (b) storing 2^N as the most significant bit of size_ and storing

size in the low bits. Both of these experiments were regressions, presumably

because we need capacity to do find operations.

Public Methods

HashtableCapacityImpl<StorageMode> CreateDestroyed ()

Defined at line 502 of file ../../third_party/abseil-cpp/src/absl/container/internal/raw_hash_set.h

HashtableCapacityImpl<StorageMode> CreateReentrance ()

Defined at line 505 of file ../../third_party/abseil-cpp/src/absl/container/internal/raw_hash_set.h

HashtableCapacityImpl<StorageMode> CreateMovedFrom ()

Defined at line 508 of file ../../third_party/abseil-cpp/src/absl/container/internal/raw_hash_set.h

HashtableCapacityImpl<StorageMode> CreateSelfMovedFrom ()

Defined at line 511 of file ../../third_party/abseil-cpp/src/absl/container/internal/raw_hash_set.h

void HashtableCapacityImpl<StorageMode> (uninitialized_tag_t )

Defined at line 515 of file ../../third_party/abseil-cpp/src/absl/container/internal/raw_hash_set.h

void HashtableCapacityImpl<StorageMode> (size_t capacity)

Defined at line 516 of file ../../third_party/abseil-cpp/src/absl/container/internal/raw_hash_set.h

HashtableCapacityImpl<StorageMode> FromRawData (uint64_t capacity)

Creates capacity from the value that was returned by `ToRawData()`.

This is needed to use bitfield for capacity.

At least on Windows combination uint8_t and uint64_t bitfield in one struct

is not optimized by compiler.

Defined at line 527 of file ../../third_party/abseil-cpp/src/absl/container/internal/raw_hash_set.h

IntType ToRawData ()

Defined at line 532 of file ../../third_party/abseil-cpp/src/absl/container/internal/raw_hash_set.h

bool IsValid ()

Defined at line 534 of file ../../third_party/abseil-cpp/src/absl/container/internal/raw_hash_set.h

bool IsDestroyed ()

Defined at line 538 of file ../../third_party/abseil-cpp/src/absl/container/internal/raw_hash_set.h

bool IsReentrance ()

Defined at line 539 of file ../../third_party/abseil-cpp/src/absl/container/internal/raw_hash_set.h

bool IsMovedFrom ()

Returns true if the table is moved-from including self moved-from.

Defined at line 541 of file ../../third_party/abseil-cpp/src/absl/container/internal/raw_hash_set.h

bool IsSelfMovedFrom ()

Defined at line 542 of file ../../third_party/abseil-cpp/src/absl/container/internal/raw_hash_set.h

size_t capacity ()

Defined at line 546 of file ../../third_party/abseil-cpp/src/absl/container/internal/raw_hash_set.h

bool is_small ()

Defined at line 552 of file ../../third_party/abseil-cpp/src/absl/container/internal/raw_hash_set.h