|
struct | lhf::DefaultPrinter< T > |
|
struct | lhf::AbsentValueAccessError |
| Thrown if an Optional is accessed when the value is absent. More...
|
|
class | lhf::Optional< T > |
| Describes an optional value 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::SetEqual< SetT, ElementT, PropertyEqual > |
| Generic Equality comparator for set types. More...
|
|
struct | lhf::SetHash< SetT, ElementT, ElementHash > |
| Hasher 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...
|
|
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 > |
| 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 >::Index |
| Index returned by an operation. The struct ensures type safety and possible future extensions. More...
|
|
struct | lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::Index::Hash |
|
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_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.