|
HIBF 1.0.0-rc.1
|
Provides platform and dependency checks. More...
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Macros | |
| #define | HIBF_COMPILER_IS_GCC 0 |
| Whether the current compiler is GCC. | |
| #define | HIBF_CONSTEXPR_VECTOR |
| std::vector constexpr support. | |
| #define | HIBF_DEPRECATED_100 [[deprecated("This will be removed in version 1.0.0; please see the documentation.")]] |
| Deprecation message for release. | |
| #define | HIBF_DEPRECATED_HEADER(message) HIBF_PRAGMA(GCC warning message) |
| Deprecation message for deprecated header. | |
| #define | HIBF_DISABLE_COMPILER_CHECK |
| This disables the warning you would get if your compiler is not known to work. | |
| #define | HIBF_DISABLE_LEGACY_STD_DIAGNOSTIC |
| This disables the warning you would get if -D_GLIBCXX_USE_CXX11_ABI=0 is set. | |
| #define | HIBF_HAS_AVX512 0 |
| Whether AVX512F and AVX512BW are available. | |
| #define | HIBF_PRAGMA(non_string_literal) _Pragma(#non_string_literal) |
| _Pragma requires a string-literal and # makes it a string | |
| #define | HIBF_WORKAROUND_GCC_BOGUS_MEMCPY 0 |
| Workaround bogus memcpy errors in GCC 12. (Wrestrict and Wstringop-overflow) | |
| #define | HIBF_WORKAROUND_GCC_NO_CXX11_ABI 0 |
| This is needed to support CentOS 7 or RHEL 7; Newer CentOS's include a more modern default-gcc version making this macro obsolete. | |
| #define | HIBF_WORKAROUND_LITERAL inline |
| Our char literals returning std::vector should be constexpr if constexpr std::vector is supported. | |
Provides platform and dependency checks.
| #define HIBF_COMPILER_IS_GCC 0 |
Whether the current compiler is GCC.
GNUC is also used to indicate the support for GNU compiler extensions. To detect the presence of the GCC compiler, one has to rule out other compilers.
| #define HIBF_WORKAROUND_GCC_BOGUS_MEMCPY 0 |
Workaround bogus memcpy errors in GCC 12. (Wrestrict and Wstringop-overflow)
| #define HIBF_WORKAROUND_GCC_NO_CXX11_ABI 0 |
This is needed to support CentOS 7 or RHEL 7; Newer CentOS's include a more modern default-gcc version making this macro obsolete.
In GCC 5 there was a bigger ABI change and modern systems compile with dual ABI, but some enterprise systems (those where gcc 4 is the standard compiler) don't support dual ABI. This has the effect that even community builds of gcc are build with –disable-libstdcxx-dual-abi. Only building the compiler yourself would solve this problem.