26static_assert(__cplusplus >= 201709,
"BioCpp-Core requires C++20, make sure that you have set -std=c++20.");
28# error "This is not a C++ compiler."
31#if __has_include(<version>)
40#if !__has_include(<bio/core.hpp>)
41# error BioC++ include directory not set correctly. Forgot to add -I ${INSTALLDIR}/include to your CXXFLAGS?
50#ifndef BIOCPP_DOXYGEN_ONLY
51# define BIOCPP_DOXYGEN_ONLY(x)
64#if defined(__GNUC__) && (__GNUC__ == 10 && __GNUC_MINOR__ <= 1)
66 "Be aware that gcc 10.0 and 10.1 are known to have several bugs that might make BioC++ fail to compile. Please use gcc >= 10.2."
70#ifndef BIOCPP_WORKAROUND_GCC_96070
71# if (defined(__GNUC__) && (__GNUC__ == 10 && __GNUC_MINOR__ < 4)) || defined(__clang__)
72# define BIOCPP_WORKAROUND_GCC_96070 1
74# define BIOCPP_WORKAROUND_GCC_96070 0
78#if BIOCPP_DOXYGEN_ONLY(1) 0
80# define BIOCPP_DISABLE_LEGACY_STD_DIAGNOSTIC
83#if defined(_GLIBCXX_USE_CXX11_ABI) && _GLIBCXX_USE_CXX11_ABI == 0
84# ifndef BIOCPP_DISABLE_LEGACY_STD_DIAGNOSTIC
86 "Your compiler has set -D_GLIBCXX_USE_CXX11_ABI=0. Please switch to a compiler that does not. You can disable this warning by setting -DBIOCPP_DISABLE_LEGACY_STD_DIAGNOSTIC."
91#ifndef BIOCPP_WORKAROUND_CLANG_58078
92# if defined(__clang__)
93# define BIOCPP_WORKAROUND_CLANG_58078 1
95# define BIOCPP_WORKAROUND_CLANG_58078 0
100#ifndef BIOCPP_WORKAROUND_CLANG_59501
101# if defined(__clang__)
102# define BIOCPP_WORKAROUND_CLANG_59501 1
104# define BIOCPP_WORKAROUND_CLANG_59501 0
113#define BIOCPP_CORE_VERSION_MAJOR 0
115#define BIOCPP_CORE_VERSION_MINOR 7
117#define BIOCPP_CORE_VERSION_PATCH 0
120#define BIOCPP_CORE_VERSION \
121 (BIOCPP_CORE_VERSION_MAJOR * 10000 + BIOCPP_CORE_VERSION_MINOR * 100 + BIOCPP_CORE_VERSION_PATCH)
126#define BIOCPP_CORE_VERSION_CSTRING_HELPER_STR(str) #str
129#define BIOCPP_CORE_VERSION_CSTRING_HELPER_FUNC(MAJOR, MINOR, PATCH) \
130 BIOCPP_CORE_VERSION_CSTRING_HELPER_STR(MAJOR) \
131 "." BIOCPP_CORE_VERSION_CSTRING_HELPER_STR(MINOR) "." BIOCPP_CORE_VERSION_CSTRING_HELPER_STR(PATCH)
134#define BIOCPP_CORE_VERSION_CSTRING \
135 BIOCPP_CORE_VERSION_CSTRING_HELPER_FUNC(BIOCPP_CORE_VERSION_MAJOR, \
136 BIOCPP_CORE_VERSION_MINOR, \
137 BIOCPP_CORE_VERSION_PATCH)
159#undef BIOCPP_CORE_VERSION_CSTRING_HELPER_STR
160#undef BIOCPP_CORE_VERSION_CSTRING_HELPER_FUNC
170#if defined(__clang__)
171# define BIOCPP_IS_SAME(...) __is_same(__VA_ARGS__)
172#elif defined(__GNUC__)
173# define BIOCPP_IS_SAME(...) __is_same_as(__VA_ARGS__)
175# define BIOCPP_IS_SAME(...) std::is_same_v<__VA_ARGS__>
182#define BIOCPP_IS_CONSTEXPR(...) std::integral_constant<bool, __builtin_constant_p((__VA_ARGS__, 0))>::value
186#define BIOCPP_UNREACHABLE __builtin_unreachable();
217inline namespace literals
232namespace bio::alphabet::detail
261inline namespace literals
275namespace bio::meta::detail
306#ifndef BIOCPP_NO_NAMESPACE_ALIASES
309namespace views = ranges::views;
323namespace bio::ranges::detail
#define BIOCPP_CORE_VERSION_MAJOR
The major version as MACRO.
Definition: core.hpp:113
#define BIOCPP_CORE_VERSION_CSTRING
The full version as null terminated string.
Definition: core.hpp:134
#define BIOCPP_CORE_VERSION_PATCH
The patch version as MACRO.
Definition: core.hpp:117
#define BIOCPP_CORE_VERSION_MINOR
The minor version as MACRO.
Definition: core.hpp:115
A namespace for third party and standard library specialisations of BioC++ customisation points.
Definition: concept.hpp:43
The alphabet module's namespace.
Definition: aa10li.hpp:23
The BioC++ namespace for views.
The ranges module's namespace.
The main BioC++ namespace.
Definition: aa10li.hpp:23
constexpr std::string_view biocpp_core_version
The full version as std::string_view.
Definition: core.hpp:155
constexpr size_t biocpp_core_version_minor
The minor version.
Definition: core.hpp:150
constexpr size_t biocpp_core_version_patch
The patch version.
Definition: core.hpp:152
constexpr size_t biocpp_core_version_major
The major version.
Definition: core.hpp:148