![]() |
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... | |
| class | MapAdapter |
| 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 of some type T. The value may either be present or absent. More... | |
| class | OptionalRef |
| Describes an optional reference 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 | |
| using | Size = std::size_t |
| using | String = std::string |
| using | IndexValue = Size |
| 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 > |
| 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 > |
| template<typename K , typename V > | |
| using | InternalMap = MapAdapter< HashMap< K, V > > |
| template<typename T > | |
| using | OperationMap = InternalMap< T, IndexValue > |
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>> | |
| Size | compose_hash (const Size 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 Size |
| using lhf::InternalMap = typedef MapAdapter<HashMap<K, V> > |
| using lhf::OperationMap = typedef InternalMap<T, IndexValue> |
| 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 |