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 __AVX512F__ && __AVX512BW__
54# define HIBF_HAS_AVX512 1
56# define HIBF_HAS_AVX512 0
64#if HIBF_COMPILER_IS_GCC && (__GNUC__ < 12)
65# error "At least GCC 12 is needed."
68#if defined(__INTEL_LLVM_COMPILER) && (__INTEL_LLVM_COMPILER < 20240000)
69# error "At least Intel OneAPI 2024 is needed."
72#if defined(__clang__) && defined(__clang_major__) && (__clang_major__ < 17)
73# error "At least Clang 17 is needed."
80#if defined(_LIBCPP_VERSION) && (_LIBCPP_VERSION < 170000)
81# error "At least libc++ 17 is required."
84#if defined(_GLIBCXX_RELEASE) && (_GLIBCXX_RELEASE < 12)
85# error "At least libstdc++ 12 is needed."
94# if (__cplusplus < 202100)
95# error "C++23 is required, make sure that you have set -std=c++23."
98# error "This is not a C++ compiler."
106#if __has_include(<hibf/version.hpp>)
109# error "HIBF include directory not set correctly. Forgot to add -I ${INSTALLDIR}/include to your CXXFLAGS?"
117#if defined(__cpp_lib_constexpr_vector)
118# define HIBF_CONSTEXPR_VECTOR constexpr
120# define HIBF_CONSTEXPR_VECTOR
126#ifndef HIBF_WORKAROUND_GCC_BOGUS_MEMCPY
127# if HIBF_COMPILER_IS_GCC && (__GNUC__ == 12)
128# define HIBF_WORKAROUND_GCC_BOGUS_MEMCPY 1
130# define HIBF_WORKAROUND_GCC_BOGUS_MEMCPY 0
134#if defined(_GLIBCXX_USE_CXX11_ABI) && _GLIBCXX_USE_CXX11_ABI == 0
135# pragma message "We do not actively support compiler that have -D_GLIBCXX_USE_CXX11_ABI=0 set."
Provides version macros and global variables.