|
| struct | mde::OperationNode |
| | This struct contains the information about the operands of an operation (union, intersection, etc.) More...
|
| |
| struct | std::hash< mde::OperationNode > |
| |
| struct | mde::SetLess< OrderedSetT, ElementT, PropertyLess > |
| | Generic Less-than comparator for set types. More...
|
| |
| struct | mde::SetHash< SetT, ElementT, ElementHash > |
| | Hasher for set types. More...
|
| |
| struct | mde::SetEqual< SetT, ElementT, PropertyEqual > |
| | Generic Equality comparator for set types. More...
|
| |
| struct | mde::AssertError |
| | Struct that is thrown on an assertion failure. More...
|
| |
| struct | mde::Unreachable |
| | Thrown if code region is unreachable. More...
|
| |
| struct | mde::NestingNone< PropertyT > |
| | The nesting type for non-nested data structures. Act as "leaf" nodes in a tree of nested MDEs. More...
|
| |
| struct | mde::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 | mde::NestingNone< PropertyT >::PropertyElement< PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter >::Hash |
| |
| struct | mde::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 | mde::NestingBase< PropertyT, ChildT > |
| | Describes the standard nesting structure. Act as "non-leaf" nodes in a tree of nested MDEs. More...
|
| |
| struct | mde::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 | mde::NestingBase< PropertyT, ChildT >::PropertyElement< PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter >::Hash |
| |
| struct | mde::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...
|
| |
| class | mde::MapAdapter< MapClass > |
| |
| struct | mde::OperationPerf |
| | Operation performance Statistics. More...
|
| |
| struct | mde::MDEConfig< T > |
| |
| class | mde::MDENode< Config, NestingT > |
| | The main MDENode structure. This class can be used as-is with a type or derived for additional functionality as needed. More...
|
| |
| struct | mde::MDENode< Config, NestingT >::Index |
| | Index returned by an operation. Being defined inside the class ensures type safety and possible future extensions. More...
|
| |
| struct | mde::MDENode< Config, NestingT >::Index::Hash |
| |
| struct | mde::MDENode< Config, NestingT >::PropertySetHolder |
| |
| class | mde::MDENode< Config, NestingT >::PropertySetStorage |
| |
| struct | mde::Deduplicator< PropertyT, PropertyHash, PropertyEqual, PropertyPrinter > |
| | An straightforward deduplicator for scalar values. It does not implement any special operations besides deduplication. Unlike MDE, this does NOT enforce constness on the data items registered. However, a mutable access must always be marked. More...
|
| |
| struct | mde::Deduplicator< PropertyT, PropertyHash, PropertyEqual, PropertyPrinter >::Index |
| | Index returned by the class. Being defined inside the class ensures type safety and possible future extensions. More...
|
| |
| struct | mde::Deduplicator< PropertyT, PropertyHash, PropertyEqual, PropertyPrinter >::Index::Hash |
| |
| struct | mde::Deduplicator< PropertyT, PropertyHash, PropertyEqual, PropertyPrinter >::PropertyPtrHash |
| |
| struct | mde::Deduplicator< PropertyT, PropertyHash, PropertyEqual, PropertyPrinter >::PropertyPtrEqual |
| |
|
| #define | __MDE_EXCEPT(__msg) AssertError(__msg " [At: " __FILE__ ":" __MDE_STR(__LINE__) "]") |
| |
| #define | __MDE_ASSERT(__cond, __msg_arg) { if (!(__cond)) { __MDE_EXCEPT(__msg_arg); } } |
| |
| #define | MDE_PROPERTY_SET_INTEGRITY_VALID(__set) verify_property_set_integrity<PropertySet, PropertyElement>(__set); |
| | Macro and switch for verify_property_set_integrity inside MDE.
|
| |
| #define | MDE_PROPERTY_SET_INDEX_VALID(__index) |
| | Check whether the index is a valid index within the property set.
|
| |
| #define | MDE_PROPERTY_SET_PAIR_VALID(__index1, __index2) |
| | Check whether the pair of indexes is a valid within the property set.
|
| |
| #define | MDE_PROPERTY_SET_PAIR_UNEQUAL(__index1, __index2) |
| | Check whether the pair of indexes are unequal. Used for sanity checking.
|
| |
| #define | MDE_PARALLEL(__x) |
| |
| #define | MDE_EVICTION(__x) |
| |
| #define | MDE_PUSH_ONE(__cont, __val) (__cont).push_back((__val)) |
| | Pushes one element to a PropertySet. Use this when implementing operations.
|
| |
| #define | MDE_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 | MDE_REGISTER_SET_INTERNAL(__set, __cold) register_set<MDE_DISABLE_INTERNAL_INTEGRITY_CHECK>((__set), (__cold)) |
| | Registers a set with behaviours defined for internal processing.
|
| |
| #define | MDE_BINARY_NESTED_OPERATION(__op_name) |
| | Declares a struct that enables the recursive/nesting behaviour of an operation.
|
| |
| #define | MDE_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 | MDE_PERF_INC(__oper, __category) (perf[__MDE_STR(__oper)] . __category ++) |
| | Increments the invocation count of the given category and operator.
|
| |
| #define | MDE_PROPERTY_INDEX_VALID(__index) |
| |
Defines the MDENode structure and related tools.
Definition in file mde.hpp.