|
| struct | lhf::DefaultPrinter< T > |
| |
| struct | lhf::AbsentValueAccessError |
| | Thrown if an Optional is accessed when the value is absent. More...
|
| |
| class | lhf::OptionalRef< T > |
| | Describes an optional reference of some type T. The value may either be present or absent. More...
|
| |
| class | lhf::Optional< T > |
| | Describes an optional of some type T. The value may either be present or absent. More...
|
| |
| struct | lhf::OperationNode |
| | This struct contains the information about the operands of an operation (union, intersection, etc.) More...
|
| |
| struct | std::hash< lhf::OperationNode > |
| |
| struct | lhf::SetLess< OrderedSetT, ElementT, PropertyLess > |
| | Generic Less-than comparator for set types. More...
|
| |
| struct | lhf::SetHash< SetT, ElementT, ElementHash > |
| | Hasher for set types. More...
|
| |
| struct | lhf::SetEqual< SetT, ElementT, PropertyEqual > |
| | Generic Equality comparator for set types. More...
|
| |
| struct | lhf::AssertError |
| | Struct that is thrown on an assertion failure. More...
|
| |
| struct | lhf::Unreachable |
| | Thrown if code region is unreachable. More...
|
| |
| struct | lhf::NestingNone< PropertyT > |
| | The nesting type for non-nested data structures. Act as "leaf" nodes in a tree of nested LHFs. More...
|
| |
| struct | lhf::NestingNone< PropertyT >::Empty |
| | Placeholder value to mark the reference lists and value lists as empty. More...
|
| |
| struct | lhf::NestingNone< PropertyT >::PropertyElement< PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter > |
| | Base-case type for the elements for a property set. The template arguments are for the 'key' type. More...
|
| |
| struct | lhf::NestingNone< PropertyT >::PropertyElement< PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter >::Hash |
| |
| struct | lhf::NestingNone< PropertyT >::PropertyElement< PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter >::FullEqual |
| | This forces a comparison of both the key and the value instead of only the key. Required in instances where distinguishing this is necessary (like in the property set storage array). More...
|
| |
| class | lhf::MapAdapter< MapClass > |
| |
| struct | lhf::NestingBase< PropertyT, ChildT > |
| | Describes the standard nesting structure. Act as "non-leaf" nodes in a tree of nested LHFs. More...
|
| |
| struct | lhf::NestingBase< PropertyT, ChildT >::PropertyElement< PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter > |
| | Type for the elements for a property set in the nested. The template arguments are for the 'key' type. More...
|
| |
| struct | lhf::NestingBase< PropertyT, ChildT >::PropertyElement< PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter >::Hash |
| |
| struct | lhf::NestingBase< PropertyT, ChildT >::PropertyElement< PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter >::FullEqual |
| | This forces a comparison of both the key and the value instead of only the key. Required in instances where distinguishing this is necessary (like in the property set storage array) More...
|
| |
| struct | lhf::OperationPerf |
| | Operation performance Statistics. More...
|
| |
| class | lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK > |
| | The main LatticeHashForest structure. This class can be used as-is with a type or derived for additional functionality as needed. More...
|
| |
| struct | lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::Index |
| | Index returned by an operation. Being defined inside the class ensures type safety and possible future extensions. More...
|
| |
| struct | lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::Index::Hash |
| |
| struct | lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::PropertySetHolder |
| |
| class | lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::PropertySetStorage |
| |
| struct | lhf::Deduplicator< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter > |
| | An LHF-like structure for scalar values. It does not implement any special operations besides deduplication. More...
|
| |
| struct | lhf::Deduplicator< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter >::Index |
| | Index returned by an operation. The struct ensures type safety and possible future extensions. More...
|
| |
|
| #define | LHF_DEBUG(x) { x }; |
| |
| #define | ____LHF__STR(x) #x |
| |
| #define | __LHF_STR(x) ____LHF__STR(x) |
| |
| #define | __LHF_EXCEPT(x) AssertError(x " [At: " __FILE__ ":" __LHF_STR(__LINE__) "]") |
| |
| #define | LHF_PROPERTY_SET_INTEGRITY_VALID(__set) verify_property_set_integrity<PropertySet, PropertyElement>(__set); |
| | Macro and switch for verify_property_set_integrity inside LHF.
|
| |
| #define | LHF_PROPERTY_SET_INDEX_VALID(__index) |
| | Check whether the index is a valid index within the property set.
|
| |
| #define | LHF_PROPERTY_SET_PAIR_VALID(__index1, __index2) |
| | Check whether the pair of indexes is a valid within the property set.
|
| |
| #define | LHF_PROPERTY_SET_PAIR_UNEQUAL(__index1, __index2) |
| | Check whether the pair of indexes are unequal. Used for sanity checking.
|
| |
| #define | LHF_PARALLEL(__x) |
| |
| #define | LHF_EVICTION(__x) |
| |
| #define | LHF_PUSH_ONE(__cont, __val) (__cont).push_back((__val)) |
| | Pushes one element to a PropertySet. Use this when implementing operations.
|
| |
| #define | LHF_PUSH_RANGE(__cont, __start, __end) (__cont).insert((__cont).end(), (__start), (__end)) |
| | Pushes a range of elements to a PropertySet using an iterator. Use this when implementing operations.
|
| |
| #define | LHF_REGISTER_SET_INTERNAL(__set, __cold) register_set<LHF_DISABLE_INTERNAL_INTEGRITY_CHECK>((__set), (__cold)) |
| | Registers a set with behaviours defined for internal processing.
|
| |
| #define | LHF_BINARY_NESTED_OPERATION(__op_name) |
| | Declares a struct that enables the recursive/nesting behaviour of an operation.
|
| |
| #define | LHF_PERFORM_BINARY_NESTED_OPERATION(__op_name, __reflist, __arg1, __arg2) ((__arg1) . template apply<__NestingOperation_ ## __op_name>((__reflist), (__arg2))) |
| | Actually enables the nesting. this must be placed in the operation body where the nested behaviour is needed.
|
| |
| #define | LHF_PERF_INC(__oper, __category) (perf[__LHF_STR(__oper)] . __category ++) |
| | Increments the invocation count of the given category and operator.
|
| |
Defines the LatticeHashForest structure and related tools.
Definition in file lhf.hpp.