// This is a precompiled header file. // // Files listed below are compiled only once, improving build performance for future builds. // // This also affects IntelliSense performance, including code completion and many code browsing features. // // However, files listed here are ALL re-compiled if any one of them is updated between builds. // // Do not add files here that you will be updating frequently as this negates the performance advantage. // #pragma once // Includes Windows API if on the correct system // #ifdef _WIN32 #define NOMINMAX #define WIN32_LEAN_AND_MEAN #include #undef NOMINMAX #undef WIN32_LEAN_AND_MEAN // Else alerts the user that their system is not supported // #else #error "This code is only designed to work on windows" #endif // _WIN32 // Checks the user is using MSVC as it is required for this code to compile // #ifndef _MSC_VER #error "This code is only designed to work with Visual Studio" #endif // _MSC_VER // My commonly used macros // #define RETURN_IF(condition) if (condition) { return; } #define RETURN_V_IF(value, condition) if (condition) { return value; } #ifdef COMMON_EXPORTS #define COMMON_API __declspec(dllexport) #else #define COMMON_API __declspec(dllimport) #endif // COMMON_EXPORTS // Includes commonly used STD files // #include #include #include #include #include #include #include #include #include #include #include // Includes LLVM files (disables warnings thrown by them) // #pragma warning(push) #pragma warning(disable : 4244) #pragma warning(disable : 4267) #pragma warning(disable : 4624) #pragma warning(disable : 4800) #include #include #include #include #pragma warning(pop) // <- Renables all warnings // Concepts used for template verification // namespace LX { // Checks if a type can be outputted to std::ostream // template concept Logable = requires(std::ostream & os, T t) { // I have no idea what this part does at all // { os << t } -> std::same_as; }; // Checks if a list of types can be outputted to std::ostream // template concept AllLogable = (Logable && ...); } // Includes the rest of common // #include #include #include #include