25#ifndef HIBF_DOXYGEN_ONLY
26# define HIBF_DOXYGEN_ONLY(x)
42#if defined(__GNUC__) && !defined(__llvm__) && !defined(__INTEL_COMPILER) && !defined(__INTEL_LLVM_COMPILER)
43# define HIBF_COMPILER_IS_GCC 1
45# define HIBF_COMPILER_IS_GCC 0
52#ifndef HIBF_HAS_AVX512
53# if defined(__AVX512F__) && defined(__AVX512BW__)
54# define HIBF_HAS_AVX512 1
56# define HIBF_HAS_AVX512 0
64#if HIBF_COMPILER_IS_GCC && (__GNUC__ < 14)
65# error "At least GCC 14 is needed."
68#if defined(__INTEL_LLVM_COMPILER) && (__INTEL_LLVM_COMPILER < 20250000)
69# error "At least Intel OneAPI 2025 is needed."
72#if defined(__clang__) && defined(__clang_major__) && (__clang_major__ < 20) && !defined(__INTEL_LLVM_COMPILER)
73# error "At least Clang 20 is needed."
76#if defined(_GLIBCXX_USE_CXX11_ABI) && _GLIBCXX_USE_CXX11_ABI == 0
77# pragma message "We do not actively support compiler that have -D_GLIBCXX_USE_CXX11_ABI=0 set."
84#if defined(_LIBCPP_VERSION) && (_LIBCPP_VERSION < 200000)
85# error "At least libc++ 20 is required."
88#if defined(_GLIBCXX_RELEASE) && (_GLIBCXX_RELEASE < 14)
89# error "At least libstdc++ 14 is needed."
98# if (__cplusplus < 202302L)
99# error "C++23 is required, make sure that you have set -std=c++23."
102# error "This is not a C++ compiler."
110#if __has_include(<hibf/version.hpp>)
113# error "HIBF include directory not set correctly. Forgot to add -I ${INSTALLDIR}/include to your CXXFLAGS?"
Provides version macros and global variables.