Skip to content

Commit 925deb8

Browse files
Clarify the status of dyn_array
1 parent 8557755 commit 925deb8

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

CppCoreGuidelines.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21341,7 +21341,7 @@ Use `not_null<zstring>` for C-style strings that cannot be `nullptr`. ??? Do we
2134121341
* `unique_ptr<T>` // unique ownership: `std::unique_ptr<T>`
2134221342
* `shared_ptr<T>` // shared ownership: `std::shared_ptr<T>` (a counted pointer)
2134321343
* `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.
21344-
* `dyn_array<T>` // ??? needed ??? A heap-allocated array. The number of elements is determined at construction and fixed thereafter.
21344+
* `dyn_array<T>` // A container, nongrowing dynamically allocated array. The number of elements is determined at construction and fixed thereafter.
2134521345
The elements are mutable unless `T` is a `const` type. Basically a `span` that allocates and owns its elements.
2134621346

2134721347
## <a name="SS-assertions"></a>GSL.assert: Assertions
@@ -22177,7 +22177,8 @@ No. `stack_array` is guaranteed to be allocated on the stack. Although a `std::a
2217722177

2217822178
### <a name="Faq-gsl-dyn-array"></a>FAQ.58: Is `dyn_array` the same as `vector` or the proposed `dynarray`?
2217922179

22180-
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.
22180+
No. `dyn_array` is a container, like `vector`, but it is not resizable; its size is fixed at runtime when it is constructed.
22181+
It is a safe way to refer to a dyamically "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.
2218122182

2218222183
### <a name="Faq-gsl-expects"></a>FAQ.59: Is `Expects` the same as `assert`?
2218322184

0 commit comments

Comments
 (0)