terminal/src/til/ut_til
Leonard Hecker f2386de422
Improve performance and binary size of til::enumset (#11493)
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 ✔️
2021-11-23 18:44:58 +00:00
..
BaseTests.cpp Fix the x86 build and re-enable x86 CI (#6467) 2020-06-11 17:04:42 +00:00
BitmapTests.cpp Merged PR 5676675: Reflect OS build fixes on top of ae8347f33 2021-02-11 18:19:33 +00:00
CoalesceTests.cpp Add support for per-profile tab colors (#7162) 2020-08-07 16:07:42 -07:00
ColorTests.cpp Switch the Cascadia projects to til::color where it's easily possible to do so (#5847) 2020-05-15 22:43:00 +00:00
DefaultResource.rc Introduce til::some (#4123) 2020-01-09 09:07:52 -08:00
EnumSetTests.cpp Improve performance and binary size of til::enumset (#11493) 2021-11-23 18:44:58 +00:00
MathTests.cpp Fix building with v143 toolchain (#10727) 2021-07-20 19:00:49 +02:00
mutex.cpp Introduce til/latch.h, til/mutex.h and til/throttled_func.h (#10403) 2021-06-22 20:16:31 +00:00
OperatorTests.cpp Move ConPTY to use til::bitmap (#5024) 2020-03-23 15:57:54 +00:00
PointTests.cpp Fix building with v143 toolchain (#10727) 2021-07-20 19:00:49 +02:00
product.pbxproj Introduce til::some (#4123) 2020-01-09 09:07:52 -08:00
RectangleTests.cpp Adjusts High DPI scaling to enable differential rendering (#5345) 2020-04-22 14:59:51 -07:00
ReplaceTests.cpp Add support for iterable, nested commands (#6856) 2020-08-13 21:22:46 +00:00
RunLengthEncodingTests.cpp Introduce til::rle - a run length encoded vector (#10099) 2021-05-20 17:27:50 +00:00
SizeTests.cpp Implement a pair of shims for cls, Clear-Host in conpty mode (#5627) 2020-04-30 21:53:31 +00:00
SomeTests.cpp til::bitmap (#4967) 2020-03-19 16:10:13 +00:00
sources Introduce til::rle - a run length encoded vector (#10099) 2021-05-20 17:27:50 +00:00
SPSCTests.cpp Fix #8695: til::spsc assignment operators don't return anything (#8811) 2021-01-19 11:41:08 +00:00
StaticMapTests.cpp Introduce til::presorted_static_map (#7640) 2020-09-29 19:01:50 +00:00
string.cpp Introduce vk() and sc() key chord specifiers (#10666) 2021-07-20 22:34:51 +00:00
throttled_func.cpp Introduce til/latch.h, til/mutex.h and til/throttled_func.h (#10403) 2021-06-22 20:16:31 +00:00
til.unit.tests.vcxproj Add an enum-compatible bitset class. (#10492) 2021-09-27 13:27:29 +00:00
til.unit.tests.vcxproj.filters Add an enum-compatible bitset class. (#10492) 2021-09-27 13:27:29 +00:00
u8u16convertTests.cpp ensure u8u16 handles lead & continuation bytes in separate txns (#4798) 2020-03-04 11:15:35 -08:00