|
SeqAn3 3.4.1-rc.1
The Modern C++ library for sequence analysis.
|
Provides platform and dependency checks. More...
#include <version>
Include dependency graph for platform.hpp:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Macros | |
| #define | SEQAN3_COMPILER_IS_GCC 0 |
| Whether the current compiler is GCC. | |
| #define | SEQAN3_DEPRECATED_340 [[deprecated("This will be removed in SeqAn-3.4.0; please see the documentation.")]] |
| Deprecation message for deprecated header. | |
| #define | SEQAN3_DISABLE_COMPILER_CHECK |
| This disables the warning you would get if your compiler is not known to work. | |
| #define | SEQAN3_DISABLE_LEGACY_STD_DIAGNOSTIC |
| This disables the warning you would get if -D_GLIBCXX_USE_CXX11_ABI=0 is set. | |
| #define | SEQAN3_HAS_BZIP2 0 |
| Whether BZIP2 support is available or not. | |
| #define | SEQAN3_HAS_CEREAL 0 |
| Whether CEREAL support is available or not. | |
| #define | SEQAN3_HAS_ZLIB 0 |
| Whether ZLIB support is available or not. | |
| #define | SEQAN3_PRAGMA(non_string_literal) _Pragma(#non_string_literal) |
| _Pragma requires a string-literal and # makes it a string | |
| #define | SEQAN3_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 | SEQAN3_WORKAROUND_LITERAL inline |
| Our char literals returning std::vector should be constexpr if constexpr std::vector is supported. | |
| #define | SEQAN3_WORKAROUND_VIEW_PERFORMANCE 1 |
| Performance of views, especially filter and join is currently bad, especially in I/O. | |
Cereal function macros | |
These can be changed by apps so we used the macros instead of the values internally. | |
| #define | CEREAL_LOAD_FUNCTION_NAME load |
| Macro for Cereal's load function. | |
| #define | CEREAL_LOAD_MINIMAL_FUNCTION_NAME load_minimal |
| Macro for Cereal's load_minimal function. | |
| #define | CEREAL_SAVE_FUNCTION_NAME save |
| Macro for Cereal's save function. | |
| #define | CEREAL_SAVE_MINIMAL_FUNCTION_NAME save_minimal |
| #define | CEREAL_SERIALIZE_FUNCTION_NAME serialize |
| Macro for Cereal's serialize function. | |
Workaround for bogus memcopy/memmove warnings on GCC | |
| #define | SEQAN3_WORKAROUND_GCC_BOGUS_MEMCPY 0 |
Indicates whether the workaround is active. 1 for GCC, 0 for other compilers. | |
| #define | SEQAN3_WORKAROUND_GCC_BOGUS_MEMCPY_START(...) |
| Denotes the start of a block where diagnostics are ignored. | |
| #define | SEQAN3_WORKAROUND_GCC_BOGUS_MEMCPY_STOP |
| Denotes the end of a block where diagnostics are ignored. | |
Provides platform and dependency checks.
| #define CEREAL_SAVE_MINIMAL_FUNCTION_NAME save_minimal |
Macro for Cereal's save_minimal function.
| #define SEQAN3_DEPRECATED_340 [[deprecated("This will be removed in SeqAn-3.4.0; please see the documentation.")]] |
Deprecation message for deprecated header.
Deprecation message for SeqAn 3.4.0 release.
| #define SEQAN3_WORKAROUND_GCC_BOGUS_MEMCPY_START | ( | ... | ) |
Denotes the start of a block where diagnostics are ignored.
If SEQAN3_WORKAROUND_GCC_BOGUS_MEMCPY is 0, this macro has no effect. Otherwise, the macro takes one or two arguments and will expand to a preprocessor directive equivalent to:
| #define SEQAN3_WORKAROUND_GCC_BOGUS_MEMCPY_STOP |
Denotes the end of a block where diagnostics are ignored.
If SEQAN3_WORKAROUND_GCC_BOGUS_MEMCPY is 0, this macro has no effect. Otherwise, the macro will expand to a preprocessor directive equivalent to:
| #define SEQAN3_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.
| #define SEQAN3_WORKAROUND_LITERAL inline |
Our char literals returning std::vector should be constexpr if constexpr std::vector is supported.
The _GLIBCXX_DEBUG statement is a workaround for a libstdc++ bug