54a7fce3e0
GSL 3, the next major version of GSL after the one we're using, replaced their local implementation of `span` with one that more closely mimics C++20's span. Unfortunately, that is a breaking change for all of GSL's consumers. This commit updates our use of span to comply with the new changes in GSL 3. Chief among those breaking changes is: * `span::at` no longer exists; I replaced many instances of `span::at` with `gsl::at(x)` * `span::size_type` has finally given up on `ptrdiff_t` and become `size_t` like all other containers While I was here, I also made the following mechanical replacements: * In some of our "early standardized" code, we used std::optional's `has_value` and `value` back-to-back. Each `value` incurs an additional presence test. * Change: `x.value().member` -> `x->member` (`optional::operator->` skips the presence test) * Change: `x.value()` -> `*x` (as above) * GSL 3 uses `size_t` for `size_type`. * Change: `gsl::narrow<size_t>(x.size())` -> `x.size()` * Change: `gsl::narrow<ptrdiff_t>(nonSpan.size())` -> `nonSpan.size()` during span construction I also replaced two instances of `x[x.size() - 1]` with `x.back()` and one instance of a manual array walk (for comparison) with a direct comparison. NOTE: Span comparison and `make_span` are not part of the C++20 span library. Fixes #6251 |
||
---|---|---|
.. | ||
AliasTests.cpp | ||
ApiRoutinesTests.cpp | ||
AttrRowTests.cpp | ||
CharRowBaseTests.cpp | ||
ClipboardTests.cpp | ||
CodepointWidthDetectorTests.cpp | ||
CommandLineTests.cpp | ||
CommandListPopupTests.cpp | ||
CommandNumberPopupTests.cpp | ||
ConptyOutputTests.cpp | ||
ConsoleArgumentsTests.cpp | ||
CopyFromCharPopupTests.cpp | ||
CopyToCharPopupTests.cpp | ||
DbcsTests.cpp | ||
DefaultResource.rc | ||
HistoryTests.cpp | ||
Host.UnitTests.vcxproj | ||
Host.UnitTests.vcxproj.filters | ||
InitTests.cpp | ||
InputBufferTests.cpp | ||
ObjectTests.cpp | ||
OutputCellIteratorTests.cpp | ||
PopupTestHelper.hpp | ||
product.pbxproj | ||
ReadWaitTests.cpp | ||
RendererTests.cpp | ||
ScreenBufferTests.cpp | ||
SearchTests.cpp | ||
SelectionTests.cpp | ||
sources | ||
testmd.definition | ||
TextBufferIteratorTests.cpp | ||
TextBufferTests.cpp | ||
TitleTests.cpp | ||
Utf8ToWideCharParserTests.cpp | ||
Utf16ParserTests.cpp | ||
UtilsTests.cpp | ||
ViewportTests.cpp | ||
VtIoTests.cpp | ||
VtRendererTests.cpp |