mirror of
https://github.com/isocpp/CppCoreGuidelines.git
synced 2025-12-16 20:37:03 +03:00
Clarify the status of dyn_array (#2243)
This commit is contained in:
@@ -21326,7 +21326,7 @@ Use `not_null<zstring>` for C-style strings that cannot be `nullptr`. ??? Do we
|
||||
* `unique_ptr<T>` // unique ownership: `std::unique_ptr<T>`
|
||||
* `shared_ptr<T>` // shared ownership: `std::shared_ptr<T>` (a counted pointer)
|
||||
* `stack_array<T>` // A stack-allocated array. The number of elements is determined at construction and fixed thereafter. The elements are mutable unless `T` is a `const` type.
|
||||
* `dyn_array<T>` // ??? needed ??? A heap-allocated array. The number of elements is determined at construction and fixed thereafter.
|
||||
* `dyn_array<T>` // A container, non-growing dynamically allocated array. The number of elements is determined at construction and fixed thereafter.
|
||||
The elements are mutable unless `T` is a `const` type. Basically a `span` that allocates and owns its elements.
|
||||
|
||||
## <a name="SS-assertions"></a>GSL.assert: Assertions
|
||||
@@ -22162,7 +22162,8 @@ No. `stack_array` is guaranteed to be allocated on the stack. Although a `std::a
|
||||
|
||||
### <a name="Faq-gsl-dyn-array"></a>FAQ.58: Is `dyn_array` the same as `vector` or the proposed `dynarray`?
|
||||
|
||||
No. `dyn_array` is not resizable, and is a safe way to refer to a heap-allocated fixed-size array. Unlike `vector`, it is intended to replace array-`new[]`. Unlike the `dynarray` that has been proposed in the committee, this does not anticipate compiler/language magic to somehow allocate it on the stack when it is a member of an object that is allocated on the stack; it simply refers to a "dynamic" or heap-based array.
|
||||
No. `dyn_array` is a container, like `vector`, but it is not resizable; its size is fixed at runtime when it is constructed.
|
||||
It is a safe way to refer to a dynamically "heap"-allocated fixed-size array. Unlike `vector`, it is intended to replace array-`new[]`. Unlike the `dynarray` that has been proposed in the committee, this does not anticipate compiler/language magic to somehow allocate it on the stack when it is a member of an object that is allocated on the stack; it simply refers to a "dynamic" or heap-based array.
|
||||
|
||||
### <a name="Faq-gsl-expects"></a>FAQ.59: Is `Expects` the same as `assert`?
|
||||
|
||||
|
||||
Reference in New Issue
Block a user