template<class T>
GeometryIndexed class
Container that maps polytope types to associated data.
Template parameters | |
---|---|
T | Type of data to associate with each polytope type |
This class provides an efficient mapping from polytope geometry types (Point, Segment, Triangle, etc.) to arbitrary data of type T. It uses compile-time knowledge of the number of polytope types to provide O(1) access with minimal memory overhead.
Constructors, destructors, conversion operators
- GeometryIndexed()
- Default constructor that initializes all entries with default values.
-
GeometryIndexed(std::initializer_list<std::pair<Polytope::
Type, T>> l) - Constructs from an initializer list of polytope type-value pairs.
- GeometryIndexed(const GeometryIndexed& other)
- Copy constructor.
- GeometryIndexed(GeometryIndexed&& other) noexcept(…)
- Move constructor.
- ~GeometryIndexed()
- Destructor that properly destroys all stored objects.
Public functions
- auto operator=(const GeometryIndexed& other) -> GeometryIndexed& noexcept(…)
- Copy assignment operator.
- auto operator=(GeometryIndexed&& other) -> GeometryIndexed& noexcept(…)
- Move assignment operator.
-
auto operator[](Polytope::
Type type) -> T& - Access operator for mutable access to data by polytope type.
-
auto operator[](Polytope::
Type type) const -> const T& - Access operator for const access to data by polytope type.
- auto size() const -> size_t constexpr
- Gets the number of polytope types (always constant).
-
template<class Archive>void serialize(Archive& ar, const unsigned int version)
- Serialization method for Boost.Serialization.
Function documentation
template<class T>
Rodin:: Geometry:: GeometryIndexed<T>:: GeometryIndexed(std::initializer_list<std::pair<Polytope:: Type, T>> l)
Constructs from an initializer list of polytope type-value pairs.
Parameters | |
---|---|
l | Initializer list of (polytope type, value) pairs |
template<class T>
Rodin:: Geometry:: GeometryIndexed<T>:: GeometryIndexed(const GeometryIndexed& other)
Copy constructor.
Parameters | |
---|---|
other | GeometryIndexed object to copy from |
template<class T>
Rodin:: Geometry:: GeometryIndexed<T>:: GeometryIndexed(GeometryIndexed&& other) noexcept(…)
Move constructor.
Parameters | |
---|---|
other | GeometryIndexed object to move from |
template<class T>
GeometryIndexed& Rodin:: Geometry:: GeometryIndexed<T>:: operator=(const GeometryIndexed& other) noexcept(…)
Copy assignment operator.
Parameters | |
---|---|
other | GeometryIndexed object to copy from |
Returns | Reference to this object |
template<class T>
GeometryIndexed& Rodin:: Geometry:: GeometryIndexed<T>:: operator=(GeometryIndexed&& other) noexcept(…)
Move assignment operator.
Parameters | |
---|---|
other | GeometryIndexed object to move from |
Returns | Reference to this object |
template<class T>
T& Rodin:: Geometry:: GeometryIndexed<T>:: operator[](Polytope:: Type type)
Access operator for mutable access to data by polytope type.
Parameters | |
---|---|
type | Polytope type to access |
Returns | Reference to the associated data |
template<class T>
const T& Rodin:: Geometry:: GeometryIndexed<T>:: operator[](Polytope:: Type type) const
Access operator for const access to data by polytope type.
Parameters | |
---|---|
type | Polytope type to access |
Returns | Const reference to the associated data |
template<class T>
size_t Rodin:: Geometry:: GeometryIndexed<T>:: size() const constexpr
Gets the number of polytope types (always constant).
Returns | Number of polytope types supported |
---|
template<class T>
template<class Archive>
void Rodin:: Geometry:: GeometryIndexed<T>:: serialize(Archive& ar,
const unsigned int version)
Serialization method for Boost.Serialization.
Template parameters | |
---|---|
Archive | Archive type for serialization |
Parameters | |
ar | Archive object |
version | Serialization version (unused) |