Skip to content
Open
Show file tree
Hide file tree
Changes from 11 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
e590a2d
Initial plan
Copilot Feb 3, 2026
8696c2c
Change generator from Unix Makefiles to Ninja for gcc and clang presets
Copilot Feb 3, 2026
06dd56d
Use Ninja generator for msvc-base preset for consistency
Copilot Feb 4, 2026
55f4956
Fix ClangCL builds by conditionally using Visual Studio generator
Copilot Feb 6, 2026
bff804a
Improve workflow readability with matrix include for generator config…
Copilot Feb 6, 2026
ffdd653
Clean up unused matrix include fields
Copilot Feb 6, 2026
69a3a21
feat: implementation of gsl::dyn_array
carsonRadtke Jan 27, 2026
9f20a8c
address a number of PR comments
carsonRadtke Feb 6, 2026
9331f28
update generator for vs18 development
carsonRadtke May 18, 2026
135f3c2
fold dyn_array_impl into dyn_array_base
carsonRadtke May 19, 2026
3505f5b
remove dyn_array_traits and inline types
carsonRadtke May 19, 2026
b9ecae9
use allocator traits instead of digging into base allocator directly
carsonRadtke May 19, 2026
aad451d
no more UB in fill and copy-fill constructors
carsonRadtke May 19, 2026
e839865
copilot found some bugs. added tests for them and fixed them.
carsonRadtke May 20, 2026
c71e799
fix cpp14 build and test failures (msvc)
carsonRadtke May 20, 2026
2a4f6db
is_same_v -> is_same + comments for static_assertion
carsonRadtke May 20, 2026
36195f1
clang-cl support w/ ninja
carsonRadtke May 20, 2026
ddbc567
stole the clang-cl solution from pr1230
carsonRadtke May 20, 2026
4ced9d6
make sure we have a dev shell before running cmake
carsonRadtke May 20, 2026
4e695e7
add tests and patch more issues found by gpt-5.5
carsonRadtke May 20, 2026
cb86729
make sure helper functions are properly marked constexpr
carsonRadtke May 20, 2026
f76cfab
fix some typos
carsonRadtke May 20, 2026
63acb93
resolve remaining todos
carsonRadtke May 20, 2026
40d3ec1
remove GSL_HAS_* macros
carsonRadtke May 20, 2026
f3c853c
misc fixes from self-review
carsonRadtke May 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/compilers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ jobs:
generator: [ 'Visual Studio 17 2022' ]
image: [ windows-2022, windows-2025 ]
build_type: [ Debug, Release ]
extra_args: [ '', '-T ClangCL' ]
extra_args: [ '', '-DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl' ]
cxx_version: [ 14, 17, 20, 23 ]
runs-on: ${{ matrix.image }}
steps:
Expand Down
6 changes: 1 addition & 5 deletions CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
"hidden": true,
"binaryDir": "${sourceDir}/build/${presetName}",
"installDir": "${sourceDir}/install/${presetName}",
"generator": "Ninja",
Comment thread
carsonRadtke marked this conversation as resolved.
"cacheVariables": {
"GSL_CXX_STANDARD": "14",
"GSL_TEST": "ON"
Expand All @@ -15,14 +16,11 @@
"name": "msvc-base",
"inherits": "base",
"hidden": true,
"generator": "Visual Studio 17 2022",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
},
"toolset": "host=x64",
"architecture": "x64",
"cacheVariables": {
"CMAKE_CXX_COMPILER": "cl"
}
Expand All @@ -31,7 +29,6 @@
"name": "gcc-base",
"inherits": "base",
"hidden": true,
"generator": "Unix Makefiles",
"cacheVariables": {
"CMAKE_CXX_COMPILER": "g++",
"CMAKE_C_COMPILER": "gcc"
Expand All @@ -41,7 +38,6 @@
"name": "clang-base",
"inherits": "base",
"hidden": true,
"generator": "Unix Makefiles",
"cacheVariables": {
"CMAKE_CXX_COMPILER": "clang++",
"CMAKE_C_COMPILER": "clang"
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ span_p | &#x26
[cu32zstring](docs/headers.md#user-content-H-zstring) | ☑ | An alias to `basic_zstring` with dynamic extent and a char type of `const char32_t`
[**2. Owners**][cg-owners] | |
stack_array | ☐ | A stack-allocated array
dyn_array | ☐ | A heap-allocated array
dyn_array | ☑ | A heap-allocated array
[**3. Assertions**][cg-assertions] | |
[Expects](docs/headers.md#user-content-H-assert-expects) | ☑ | A precondition assertion; on failure it terminates
[Ensures](docs/headers.md#user-content-H-assert-ensures) | ☑ | A postcondition assertion; on failure it terminates
Expand Down
5 changes: 5 additions & 0 deletions docs/headers.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ See [GSL: Guidelines support library](https://isocpp.github.io/CppCoreGuidelines
- [`<algorithms>`](#user-content-H-algorithms)
- [`<assert>`](#user-content-H-assert)
- [`<byte>`](#user-content-H-byte)
- [`<dyn_array>`](#user-content-H-dyn_array)
- [`<gsl>`](#user-content-H-gsl)
- [`<narrow>`](#user-content-H-narrow)
- [`<pointers>`](#user-content-H-pointers)
Expand Down Expand Up @@ -155,6 +156,10 @@ constexpr byte to_byte() noexcept;

Convert the given value `I` to a `byte`. The template requires `I` to be in the valid range 0..255 for a `gsl::byte`.

## <a name="H-dyn_array" />`<dyn_array>`

# TODO (@carsonradtke)
Comment thread
carsonRadtke marked this conversation as resolved.
Outdated

Comment thread
carsonRadtke marked this conversation as resolved.
## <a name="H-gsl" />`<gsl>`

This header is a convenience header that includes all other [GSL headers](#user-content-H).
Expand Down
Loading
Loading