Requirements#
Containers Library Requirements
|
status: draft
security: YES
safety: ASIL_B
|
||||
Functional Requirements#
Dynamic Array
|
status: valid
security: NO
safety: ASIL_B
|
||||
The Containers library shall provide a fixed-size array container with construction-time size specification. |
|||||
Intrusive List
|
status: valid
security: NO
safety: ASIL_B
|
||||
The Containers library shall provide an intrusive doubly-linked list based on the C++ standardization proposal P0406R1. |
|||||
Type Safety
|
status: valid
security: NO
safety: ASIL_B
|
||||
The Containers library shall enforce compile-time type safety for all container operations. |
|||||
Non-Relocatable Vector
|
status: valid
security: NO
safety: ASIL_B
|
||||
The Containers library shall provide a non-relocatable vector container that maintains stable element addresses. |
|||||
Non-Functional Requirements#
Deterministic Behavior
|
status: valid
security: NO
safety: ASIL_B
|
||||
The Containers library shall provide deterministic behavior with no dynamic memory allocation. |
|||||
Assumptions of Use (AoU)#
Check Capacity
|
status: valid
security: NO
safety: ASIL_B
|
||||
The user shall verify sufficient capacity or handle allocation failures before insertion operations to prevent exceeding container limits and undefined behavior. |
|||||
Iterator Validity
|
status: valid
security: NO
safety: ASIL_B
|
||||
The user shall ensure that iterators are not used after operations that invalidate them and refresh iterators after modifying operations. |
|||||
Element Lifetime and Ownership
|
status: valid
security: NO
safety: ASIL_B
|
||||
The user shall ensure that elements stored in containers remain valid throughout their lifetime in the container, and for intrusive containers, that element objects are not destroyed or moved while contained within the container. |
|||||
Thread Safety
|
status: valid
security: NO
safety: ASIL_B
|
||||
The user shall implement external synchronization mechanisms when accessing or modifying container objects from multiple threads concurrently, as the library provides no internal thread safety guarantees. |
|||||
Index Bounds Checking
|
status: valid
security: NO
safety: ASIL_B
|
||||
The user shall ensure that all index-based access operations use valid indices within the container’s current size range to prevent out-of-bounds access and undefined behavior. |
|||||
Container State Verification
|
status: valid
security: NO
safety: ASIL_B
|
||||
The user shall verify container state before performing operations that depend on specific states, such as checking if a container is non-empty before accessing elements. |
|||||
Memory Resource Management
|
status: valid
security: NO
safety: ASIL_B
|
||||
The user shall provide sufficient memory resources for all container operations. |
|||||
Element Type Requirements
|
status: valid
security: NO
safety: ASIL_B
|
||||
The user shall ensure that element types are copy constructible, move constructible and destructible, and additionally for intrusive containers that they provide the required intrusive node members. |
|||||