f2386de422
This commit approximately doubles the performance of til::enumset and reduces it's binary footprint by approximately 1kB. Most of the binary size can be attributed to exception handling. Unfortunately this commit removes assertions that the given values are less than the number of bits in the `underlying_type`. However I believe this to be a good trade-off as the tests previously only happened at runtime, while tests at compile time would be highly preferable. Such tests are technically possible, however MSVC fails to compile (valid) `static_assert`s containing `static_cast`s over a parameter pack at the time of writing. With future MSVC versions such checks can be added to this class. This change was initially discussed in #10492, but was forgotten to be considered before it was merged. Since the work was already done, this commit re-introduces the optimization. It's free! ## PR Checklist * [x] I work here. * [x] Tests added/passed ## Validation Steps Performed * Run `printf '\e]8;;http://example.com\e\\This is a link\e]8;;\e\\\n'` in WSL * A wild dotted line appears ✔️ |
||
---|---|---|
.. | ||
CppCoreCheck | ||
test | ||
til | ||
argb.h | ||
conattrs.hpp | ||
conime.h | ||
conint.h | ||
conpty-static.h | ||
conpty.h | ||
consoletaeftemplates.hpp | ||
contsf.h | ||
cpl_core.h | ||
DefaultSettings.h | ||
HostAndPropsheetIncludes.h | ||
HostSignals.hpp | ||
ITerminalOutputConnection.hpp | ||
ITerminalOwner.hpp | ||
LibraryIncludes.h | ||
operators.hpp | ||
til.h | ||
unicode.hpp | ||
VtIoModes.hpp | ||
WilErrorReporting.h | ||
winrtTaefTemplates.hpp |