![]() |
LatticeHashForest
|
Classes | |
struct | __CalcTime |
The object used to enable the duration capturing mechanism. More... | |
struct | AbsentValueAccessError |
Thrown if an Optional is accessed when the value is absent. More... | |
struct | AssertError |
Struct that is thrown on an assertion failure. More... | |
struct | Deduplicator |
An LHF-like structure for scalar values. It does not implement any special operations besides deduplication. More... | |
struct | DefaultPrinter |
class | LatticeHashForest |
The main LatticeHashForest structure. This class can be used as-is with a type or derived for additional functionality as needed. More... | |
struct | NestingBase |
Describes the standard nesting structure. Act as "non-leaf" nodes in a tree of nested LHFs. More... | |
struct | NestingNone |
The nesting type for non-nested data structures. Act as "leaf" nodes in a tree of nested LHFs. More... | |
struct | OperationNode |
This struct contains the information about the operands of an operation (union, intersection, etc.) More... | |
struct | OperationPerf |
Operation performance Statistics. More... | |
class | Optional |
Describes an optional value of some type T. The value may either be present or absent. More... | |
struct | PerformanceStatistics |
Utility class for enabling code-based profiling. More... | |
struct | SetEqual |
Generic Equality comparator for set types. More... | |
struct | SetHash |
Hasher for set types. More... | |
struct | SetLess |
Generic Less-than comparator for set types. More... | |
struct | Unreachable |
Thrown if code region is unreachable. More... | |
Typedefs | |
template<typename T > | |
using | UniquePointer = std::unique_ptr< T > |
template<typename T > | |
using | Vector = std::vector< T > |
template<typename K , typename V > | |
using | HashMap = std::unordered_map< K, V > |
template<typename K , typename V > | |
using | OrderedMap = std::map< K, V > |
template<typename T > | |
using | HashSet = std::unordered_set< T > |
template<typename T > | |
using | OrderedSet = std::set< T > |
using | String = std::string |
using | IndexValue = std::size_t |
template<typename T > | |
using | DefaultLess = std::less< T > |
template<typename T > | |
using | DefaultHash = std::hash< T > |
template<typename T > | |
using | DefaultEqual = std::equal_to< T > |
Enumerations | |
enum | SubsetRelation { UNKNOWN = 0 , SUBSET = 1 , SUPERSET = 2 } |
Used to store a subset relation between two set indices. Because the index pair must be in sorted order to prevent duplicates, it necessitates this enum. More... | |
Functions | |
template<typename T , typename Hash = DefaultHash<T>> | |
std::size_t | compose_hash (const std::size_t prev, T next) |
Composes a preexisting hash with another variable. Useful for Hashing containers. Adapted from boost::hash_combine . | |
std::ostream & | operator<< (std::ostream &os, const OperationNode &op) |
using lhf::DefaultEqual = typedef std::equal_to<T> |
using lhf::DefaultHash = typedef std::hash<T> |
using lhf::DefaultLess = typedef std::less<T> |
using lhf::HashMap = typedef std::unordered_map<K, V> |
using lhf::HashSet = typedef std::unordered_set<T> |
using lhf::IndexValue = typedef std::size_t |
using lhf::OrderedMap = typedef std::map<K, V> |
using lhf::OrderedSet = typedef std::set<T> |
using lhf::String = typedef std::string |
using lhf::UniquePointer = typedef std::unique_ptr<T> |
using lhf::Vector = typedef std::vector<T> |
enum lhf::SubsetRelation |
|
inline |
Composes a preexisting hash with another variable. Useful for Hashing containers. Adapted from boost::hash_combine
.
[in] | prev | The current hash |
[in] | next | The value to compose with the current hash |
T | Value type |
Hash | Hash for the value type |
|
inline |