21 using compiler_constant = msvc_type;
24 constexpr int iterator_debug_level() noexcept
26 return _ITERATOR_DEBUG_LEVEL;
29 #define SEQUOIA_MSVC_EMPTY_BASE_HACK __declspec(empty_bases)
31 #define SEQUOIA_NO_UNIQUE_ADDRESS [[msvc::no_unique_address]]
33 #if defined(__clang__)
34 using compiler_constant = clang_type;
35 #elif defined(__GNUG__)
36 using compiler_constant = gcc_type;
38 using compiler_constant = other_compiler_type;
41 int iterator_debug_level() noexcept;
43 #define SEQUOIA_MSVC_EMPTY_BASE_HACK
45 #define SEQUOIA_NO_UNIQUE_ADDRESS [[no_unique_address]]
48 #if defined(__clang__)
51 inline constexpr int par{0};
56 inline constexpr auto par{std::execution::par};
60 inline constexpr bool with_msvc_v{std::is_same_v<compiler_constant, msvc_type>};
61 inline constexpr bool with_clang_v{std::is_same_v<compiler_constant, clang_type>};
62 inline constexpr bool with_gcc_v{std::is_same_v<compiler_constant, gcc_type>};