FE 0.16.1
Fast, Effecient FrontEnds
Loading...
Searching...
No Matches
hash.h File Reference
#include <concepts>
#include <cstddef>
#include <cstdint>
#include <functional>
#include <string>
#include <string_view>
#include <ankerl/unordered_dense.h>
Include dependency graph for hash.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  fe::StrHash
 Hashes the characters of a string; transparent, so std::string keys may be looked up by std::string_view. More...

Namespaces

namespace  fe

Typedefs

StrMap/StrSet

Keyed by std::string but also looked up by std::string_view or const char* without building a std::string.

template<class V>
using fe::StrMap = ankerl::unordered_dense::map<std::string, V, StrHash, std::equal_to<>>
using fe::StrSet = ankerl::unordered_dense::set<std::string, StrHash, std::equal_to<>>

Functions

template<std::integral T>
constexpr size_t fe::hash_combine (size_t seed, T v) noexcept
 Folds v into seed like ankerl::unordered_dense hashes a tuple: one 128-bit multiply, halves xored.