37 #ifndef Foam_HashTableDetail_H 38 #define Foam_HashTableDetail_H 43 #include <type_traits> 52 template<
class T>
class autoPtr;
68 template<
class T>
struct isPointerLike<
std::unique_ptr<T>> : std::true_type {};
79 template<
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>
const mapped_type & cval() const noexcept
Const access to the mapped value.
Internal storage type for HashSet entries.
const mapped_type & val() const noexcept
Const access to the mapped value.
HashTableSingle * next_
Addressing (next in collision list)
const mapped_type & cval() const noexcept
Const access to the (dummy) mapped value (for API only)
CGAL::Exact_predicates_exact_constructions_kernel K
HashTableSingle(const HashTableSingle &)=delete
No copy construct.
static constexpr bool stores_value() noexcept
This class stores a value.
void print(Ostream &os) const
Write the key. There is no value to write.
const key_type & key() const noexcept
The key.
V mapped_type
Type of content.
void operator=(const HashTableSingle &)=delete
No copy assignment.
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
static constexpr bool stores_value() noexcept
This class does not store any value.
static zero dummy
A static instance, when modifiable reference is required by an API.
HashTablePair * next_
Addressing (next in collision list)
An Ostream is an abstract base class for all output systems (streams, files, token lists...
OBJstream os(runTime.globalPath()/outputName)
Foam::zero mapped_type
Type of content (no content: placeholder)
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
const K key_
The lookup key == content.
const key_type & key() const noexcept
The key.
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.
const K key_
The lookup key.
Internal storage type for HashTable entries.
A class representing the concept of 0 (zero) that can be used to avoid manipulating objects known to ...
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
bool operator<(const HashTableSingle &rhs) const
Compare keys.
key_type value_type
Content storage type to the entry.
const mapped_type & val() const noexcept
Const access to the (dummy) mapped value (for API only)
Foam::argList args(argc, argv)
void operator=(const HashTablePair &)=delete
No copy assignment.
HashTablePair(const HashTablePair &)=delete
No copy construct.