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 |
||
---|---|---|
.. | ||
inc | ||
lib | ||
ut_types | ||
CodepointWidthDetector.cpp | ||
convert.cpp | ||
dirs | ||
Environment.cpp | ||
FocusEvent.cpp | ||
GlyphWidth.cpp | ||
IBaseData.h | ||
IControlAccessibilityInfo.h | ||
IInputEvent.cpp | ||
IInputEventStreams.cpp | ||
IUiaData.h | ||
IUiaEventDispatcher.h | ||
IUiaTraceable.h | ||
KeyEvent.cpp | ||
MenuEvent.cpp | ||
ModifierKeyState.cpp | ||
MouseEvent.cpp | ||
precomp.cpp | ||
precomp.h | ||
ScreenInfoUiaProviderBase.cpp | ||
ScreenInfoUiaProviderBase.h | ||
sources.inc | ||
TermControlUiaProvider.cpp | ||
TermControlUiaProvider.hpp | ||
TermControlUiaTextRange.cpp | ||
TermControlUiaTextRange.hpp | ||
ThemeUtils.cpp | ||
UiaTextRangeBase.cpp | ||
UiaTextRangeBase.hpp | ||
UiaTracing.cpp | ||
UiaTracing.h | ||
Utf16Parser.cpp | ||
utils.cpp | ||
viewport.cpp | ||
WindowBufferSizeEvent.cpp |