// Copyright (c) Microsoft Corporation. // Licensed under the MIT license. // clang-format off #pragma once #pragma warning(push) // C #include #include #include // STL // Block minwindef.h min/max macros to prevent conflict #define NOMINMAX #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // WIL #include #include #include #include #include #include #include #include // GSL // Block GSL Multi Span include because it both has C++17 deprecated iterators // and uses the C-namespaced "max" which conflicts with Windows definitions. #define GSL_MULTI_SPAN_H #include #include // CppCoreCheck #include // Chromium Numerics (safe math) #pragma warning(push) #pragma warning(disable:4100) // unreferenced parameter #include #pragma warning(pop) // Boost #include "boost/container/small_vector.hpp" // IntSafe #define ENABLE_INTSAFE_SIGNED_FUNCTIONS #include // LibPopCnt - Fast C/C++ bit population count library (on bits in an array) #include // Dynamic Bitset (optional dependency on LibPopCnt for perf at bit counting) // Variable-size compressed-storage header-only bit flag storage library. #pragma warning(push) #pragma warning(disable:4702) // unreachable code #include #pragma warning(pop) // {fmt}, a C++20-compatible formatting library #include #include #define USE_INTERVAL_TREE_NAMESPACE #include // SAL #include // WRL // Microsoft::WRL::Details::StaticStorage contains a programming error. // The author attempted to create a properly aligned backing storage for a type T, // but instead of giving the member the proper alignas, the struct got it. // The compiler doesn't like that. --> Suppress the warning. #pragma warning(push) #pragma warning(disable: 4324) // structure was padded due to alignment specifier #include #pragma warning(pop) // WEX/TAEF testing // Include before TIL if we're unit testing so it can light up WEX/TAEF template extensions #ifdef UNIT_TESTING #include #endif // TIL - Terminal Implementation Library #ifndef BLOCK_TIL // Certain projects may want to include TIL manually to gain superpowers #include "til.h" #endif #pragma warning(pop) // clang-format on