37#ifndef Foam_HashTableDetail_H
38#define Foam_HashTableDetail_H
52template<
class T>
class autoPtr;
68template<
class T>
struct isPointerLike<std::unique_ptr<T>> : std::true_type {};
79template<
class K,
class V>
121 template<
class... Args>
169 template<
class TypeT = V>
170 typename std::enable_if
173 std::is_pointer<TypeT>::value
189 template<
class TypeT = V>
190 typename std::enable_if
193 !std::is_pointer<TypeT>::value
253 template<
class... Args>
CGAL::Exact_predicates_exact_constructions_kernel K
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A zero class with a null output adapter.
static null dummy
A static zero::null for dereferencing as a dummy element.
OBJstream os(runTime.globalPath()/outputName)
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
Foam::argList args(argc, argv)
Internal storage type for HashTable entries.
V mapped_type
Type of content.
HashTablePair(const HashTablePair &)=delete
No copy construct.
const mapped_type & cval() const noexcept
Const access to the mapped value.
mapped_type & val() noexcept
Non-const access to the mapped value.
const K key_
The lookup key.
const mapped_type & val() const noexcept
Const access to the mapped value.
void operator=(const HashTablePair &)=delete
No copy assignment.
std::enable_if<(!std::is_pointer< TypeT >::value &&!Detail::isPointerLike< TypeT >::value), void >::type print(Ostream &os) const
Write (key, val) pair - for non-pointer types.
const key_type & key() const noexcept
The key.
HashTablePair * next_
Addressing (next in collision list)
static constexpr bool stores_value() noexcept
This class stores a value.
HashTablePair(HashTablePair *next, const key_type &key, Args &&... args)
Construct from next pointer, key, contents.
std::enable_if<(std::is_pointer< TypeT >::value||Detail::isPointerLike< TypeT >::value), void >::type print(Ostream &os) const
Write (key, val) pair - for pointer types.
bool operator<(const HashTablePair &rhs) const
Compare keys.
Internal storage type for HashSet entries.
Foam::zero::null mapped_type
Type of content (no content: placeholder)
HashTableSingle(const HashTableSingle &)=delete
No copy construct.
void operator=(const HashTableSingle &)=delete
No copy assignment.
HashTableSingle * next_
Addressing (next in collision list)
const mapped_type & cval() const noexcept
Const access to the (dummy) mapped value.
key_type value_type
Content storage type to the entry.
mapped_type & val() noexcept
Non-const access to the (dummy) mapped value.
const K key_
The lookup key == content.
const mapped_type & val() const noexcept
Const access to the (dummy) mapped value.
HashTableSingle(HashTableSingle *next, const key_type &key, Args &&...)
Construct from next pointer, key, (unused) contents.
void print(Ostream &os) const
Write the key. There is no value to write.
const key_type & key() const noexcept
The key.
static constexpr bool stores_value() noexcept
This class does not store any value.
bool operator<(const HashTableSingle &rhs) const
Compare keys.