Data Structures

Here are the data structures with brief descriptions:
allA tag class that is used to represent all types of either a particular key type, or a particular value type
container< KeyType, DataType, ObjectType, ObjectIdentificationTag, KeyDispatchTag, StorageTag >The main container manipulation class
container_auto_resize< StorageTag >Resizes a vector automatically in order to allow valid access
container_auto_resize< dense_data_tag >Resizes a vector automatically in order to allow valid access. Specialization for dense data access
container_erasure_dispatcher< KeyType, DataType, ObjectIdentificationTag, KeyDispatchTag, StorageTag >A dispatch facility that unwraps type-erasued key-value type pairs
container_erasure_dispatcher< KeyType, DataType, object_provided_id, KeyDispatchTag, dense_data_tag >For a dense data storage with vectors, delete element by resetting
container_erasure_dispatcher< KeyType, DataType, object_provided_id, type_key_dispatch_tag, dense_data_tag >Resolves the ambiguity erasing elements using dense storage with type-based dispatch
container_erasure_dispatcher< KeyType, DataType, ObjectIdentificationTag, type_key_dispatch_tag, StorageTag >Spezialization: Provides erase functionality for type-based key dispatch
container_key_value_pair< KeyType, DataType, KeyDispatchTag >Accesses the data based on the provided (KeyType, DataType) pair
container_key_value_pair< KeyType, DataType, type_key_dispatch_tag >Specialization of container_key_value_pair for type-based key dispatch (type_key_dispatch_tag)
container_reservation_dispatcher< ContainerType, ObjectIdentificationTag, StorageTag >Helper class: Reserve memory based on the selected identification mechanism. Nothing needs to be done when a map container is used
container_reservation_dispatcher< ContainerType, object_provided_id, dense_data_tag >When used with dense data storage, the underlying vector container needs to be resized
container_storage< KeyType, DataType, ObjectType, ObjectIdentificationTag, KeyDispatchTag, StorageTag >Helper class for the deduction of the correct storage type. Default case
container_storage< KeyType, DataType, ObjectType, object_provided_id, KeyDispatchTag, dense_data_tag >Helper class for the deduction of the correct storage type. Dense storage with provided ID
data_accessor_no_key< KeyType, DataType >A proxy class for accessing data with key type dispatch, but no key object dispatch. Only used internally in ViennaData
data_accessor_with_key< KeyType, DataType >A proxy class for accessing data with key type and key object dispatch. Only used internally in ViennaData
data_container< KeyType, DataType, ObjectType >The central container class holding the data. Uses the singleton pattern for a particular key, value and object type triple
data_copy_no_key< KeyType, DataType >A proxy class for copying data associated with a particular key type from one object to another. Only used internally in ViennaData
data_copy_no_key< all, all >Specialization for copying all data from one object to another using viennadata::all
data_copy_no_key< all, DataType >Specialization for copying all data of a particular DataType from one object to another using viennadata::all for the KeyType
data_copy_no_key< KeyType, all >Specialization for copying all data associated with a particular key type from one object to another using viennadata::all
data_copy_with_key< KeyType, DataType >A proxy class for copying data associated with a particular key from one object to another. Only used internally in ViennaData
data_copy_with_key< all, all >Specialization that prevents supplying a key argument when using viennadata::all
data_copy_with_key< all, DataType >Specialization that prevents supplying a key argument when using viennadata::all
data_copy_with_key< KeyType, all >Specialization that prevents supplying a key argument when using viennadata::all
data_erasor_no_key< KeyType, DataType >A proxy class for erasing data. Only used internally in ViennaData
data_erasor_no_key< all, all >Specialization for erasing all data using viennadata::all
data_erasor_no_key< all, DataType >Specialization for erasing all data of a particular DataType by providing viennadata::all for the KeyType
data_erasor_no_key< KeyType, all >Specialization for erasing all data for a particular KeyType by providing viennadata::all for the DataType
data_erasor_with_key< KeyType, DataType >A proxy class for erasing data. Only used internally in ViennaData
data_erasor_with_key< all, all >Specialization that prevents supplying a key argument when using viennadata::all
data_erasor_with_key< all, DataType >Specialization that prevents supplying a key argument when using viennadata::all
data_erasor_with_key< KeyType, all >Specialization that prevents supplying a key argument when using viennadata::all
data_find_proxy_no_key< KeyType, DataType >A proxy class for finding data associated with a particular key. Only used internally in ViennaData
data_find_proxy_with_key< KeyType, DataType >A proxy class for finding data associated with a particular key. Only used internally in ViennaData
data_mover_no_key< KeyType, DataType >A proxy class for moving data associated with a particular key type from one object to another. Only used internally in ViennaData
data_mover_with_key< KeyType, DataType >A proxy class for moving data associated with a particular key from one object to another. Only used internally in ViennaData
data_mover_with_key< all, all >Specialization that prevents supplying a key argument when using viennadata::all
data_mover_with_key< all, DataType >Specialization that prevents supplying a key argument when using viennadata::all
data_mover_with_key< KeyType, all >Specialization that prevents supplying a key argument when using viennadata::all
data_reservation_proxy< KeyType, DataType >A proxy class for reserving memory needed for storing data associated with a particular key type. Only used internally in ViennaData
data_type_reference< DataType, ContainerType >A helper metafunction that fixes problems with std::vector<bool> returning std::_bit_reference instead of bool
data_type_reference< bool, std::vector< bool > >
default_data_for_key< KeyType >A traits class that specifies the default data type for a key. By default, no key type has a default data type
dense_data_tagA tag class for storing data in a dense manner, i.e. most objects of the same type carry the data for a particular key/value pair
error_indicator< T >A helper class to raise compile time errors
full_key_dispatch_tagA tag class for specifying that both the key type and the key object are used for data access
IS_ACCESS_WITHOUT_KEY_ALLOWED< KeyDispatchTag >Helper class: Checks for valid access without key. If no key is supplied, than full dispatch is clearly illegal
IS_ACCESS_WITHOUT_KEY_ALLOWED< type_key_dispatch_tag >No key is allowed when using a type based dispatch
key_dispatch< KeyType >A traits class that specifies whether data is accessed using full key dispatches (object and type), or using the key type only
key_value_pair< ObjectType >A dispatch facility that unwraps type-erasued key-value type pairs
key_value_pair_interface< ObjectType >The interface for type-erasued key-value type pairs on a certain element
key_value_pair_wrapper< KeyType, DataType, ObjectType >A dispatch facility that unwraps type-erasued key-value type pairs
key_value_registration< ObjectType >This class holds (key-type, data-type) pairs. Uses a singleton pattern to
object_identifier< ObjectType >Traits class that specifies the object identification mechanism
object_provided_idA tag class that indicates that the object provides an ID mechanism (must be supplied by overloading object_identifier appropriately)
pointer_based_idA tag class that indicates that object addresses should be used as identification
sparse_data_tagA tag class for storing data in a sparse manner, i.e. only a few objects of the same type carry the data for a particular key/value pair
storage< KeyType, DataType, ObjectType >A traits class that specifies whether data should be stored in a dense (i.e. vector) or a sparse (i.e. map) manner
type_key_dispatch_tagA tag class for specifying that ONLY the key type is used for data access