This header-file is part of the ALib C++ Library.
© 2013-2025 A-Worx GmbH, Germany. Published under Boost Software License.
This header does not belong to a module of ALib, but is included in any ALib Build. Its purposes are:
Definition in file alib.inl.
#include <concepts>
#include <type_traits>
#include <thread>
#include <assert.h>
Go to the source code of this file.
Macros | |
#define | ALIB_DOCUMENTATION_URL "https://alib.dev/" |
DOXYGEN. | |
ALib Version And Feature Verification | |
Macros used to verify that the ALib binary used has the right version is compiled with the same feature set as the current compilation unit. For this, version and feature flags are compiled statically into the library. The macros are used internally, respectively 'automatically'. Hence, they need not to be used directly clients of the library. | |
#define | ALIB_ASSERT_MODULE(modulename) |
#define | ALIB_REVISION 0 |
#define | ALIB_VERSION 2510 |
ALib Module Selection | |
This group of symbols determine the availability of different ALib Modules of the ALib Build used. The symbols are defined in the internal header alib.inl, which always is and has to be the first ALib header-file included (directly or indirectly). If none of the symbols is passed to the compiler, this header-file will define all to If a symbol is given as | |
#define | ALIB_ALOX 1 |
#define | ALIB_BITBUFFER 1 |
#define | ALIB_BOXING 1 |
#define | ALIB_CAMP 1 |
#define | ALIB_CLI 1 |
#define | ALIB_CONTAINERS 1 |
#define | ALIB_ENUMRECORDS 1 |
#define | ALIB_EXCEPTIONS 1 |
#define | ALIB_EXPRESSIONS 1 |
#define | ALIB_FILES 1 |
#define | ALIB_FORMAT 1 |
#define | ALIB_MONOMEM 1 |
#define | ALIB_RESOURCES 1 |
#define | ALIB_SINGLETONS 1 |
#define | ALIB_STRINGS 1 |
#define | ALIB_SYSTEM 1 |
#define | ALIB_THREADMODEL 1 |
#define | ALIB_VARIABLES 1 |
Code Selection | |
#define | ALIB_CPP_23(...) |
#define | ALIB_CPP_BEFORE_23(...) |
#define | ALIB_DBG(...) |
#define | ALIB_REL(...) |
#define | ALIB_REL_DBG(releaseCode, ...) |
#define | IF_ALIB_ALOX(...) |
#define | IF_ALIB_BITBUFFER(...) |
#define | IF_ALIB_BOXING(...) |
#define | IF_ALIB_CAMP(...) |
#define | IF_ALIB_CLI(...) |
#define | IF_ALIB_CONTAINERS(...) |
#define | IF_ALIB_ENUMRECORDS(...) |
#define | IF_ALIB_EXCEPTIONS(...) |
#define | IF_ALIB_EXPRESSIONS(...) |
#define | IF_ALIB_FILES(...) |
#define | IF_ALIB_FORMAT(...) |
#define | IF_ALIB_MONOMEM(...) |
#define | IF_ALIB_RESOURCES(...) |
#define | IF_ALIB_SINGLETONS(...) |
#define | IF_ALIB_STRINGS(...) |
#define | IF_ALIB_SYSTEM(...) |
#define | IF_ALIB_THREADMODEL(...) |
#define | IF_ALIB_THREADS(...) |
#define | IF_ALIB_VARIABLES(...) |
#define | IFNOT_ALIB_ALOX(...) |
#define | IFNOT_ALIB_BITBUFFER(...) |
#define | IFNOT_ALIB_BOXING(...) |
#define | IFNOT_ALIB_CAMP(...) |
#define | IFNOT_ALIB_CLI(...) |
#define | IFNOT_ALIB_CONTAINERS(...) |
#define | IFNOT_ALIB_ENUMRECORDS(...) |
#define | IFNOT_ALIB_EXCEPTIONS(...) |
#define | IFNOT_ALIB_EXPRESSIONS(...) |
#define | IFNOT_ALIB_FILES(...) |
#define | IFNOT_ALIB_FORMAT(...) |
#define | IFNOT_ALIB_MONOMEM(...) |
#define | IFNOT_ALIB_RESOURCES(...) |
#define | IFNOT_ALIB_SINGLETONS(...) |
#define | IFNOT_ALIB_STRINGS(...) |
#define | IFNOT_ALIB_SYSTEM(...) |
#define | IFNOT_ALIB_THREADMODEL(...) |
#define | IFNOT_ALIB_THREADS(...) |
#define | IFNOT_ALIB_VARIABLES(...) |
C/C++ Language And Linkage Macros | |
#define | ALIB_ASSERT_GLOBAL_NAMESPACE |
#define | ALIB_CALLER {__FILE__,__LINE__,ALIB_CALLER_FUNC,::std::this_thread::get_id(),&typeid(*this)} |
#define | ALIB_CALLER_FUNC __FUNCTION__ |
#define | ALIB_CALLER_NULLED ALIB_CALLER |
#define | ALIB_CALLER_NULLED_COMMA ALIB_CALLER , |
#define | ALIB_CALLER_PRUNED ALIB_CALLER |
#define | ALIB_CALLER_PRUNED_COMMA ALIB_CALLER , |
#define | ALIB_COMMA_CALLER_NULLED , ALIB_CALLER |
#define | ALIB_COMMA_CALLER_PRUNED , ALIB_CALLER |
#define | ALIB_DBG_TAKE_CI const CallerInfo& ci |
#define | ALIB_DLL __declspec(dllexport) |
#define | ALIB_EXPORT export |
#define | ALIB_SIZEOF_WCHAR_T 4 |
#define | ALIB_STACK_ALLOCATED_TYPE(T) |
#define | bitsof(type) |
C/C++ Compiler Warning Control | |
#define | ALIB_FALLTHROUGH [[clang::fallthrough]]; |
#define | ALIB_WARNINGS_ALLOW_BITWISE_SWITCH |
#define | ALIB_WARNINGS_ALLOW_MACRO_REDEFINITION |
#define | ALIB_WARNINGS_ALLOW_NULL_POINTER_PASSING _Pragma("clang diagnostic push") \ |
#define | ALIB_WARNINGS_ALLOW_SHIFT_COUNT_OVERFLOW |
#define | ALIB_WARNINGS_ALLOW_SPARSE_ENUM_SWITCH |
#define | ALIB_WARNINGS_ALLOW_UNREACHABLE_CODE |
#define | ALIB_WARNINGS_ALLOW_UNSAFE_FUNCTION_OR_VARIABLE |
#define | ALIB_WARNINGS_IGNORE_DEPRECATED |
#define | ALIB_WARNINGS_IGNORE_DOCS |
#define | ALIB_WARNINGS_IGNORE_FUNCTION_TEMPLATE |
#define | ALIB_WARNINGS_IGNORE_INTEGER_OVERFLOW |
#define | ALIB_WARNINGS_IGNORE_INTEGRAL_CONSTANT_OVERFLOW _Pragma("clang diagnostic push") \ |
#define | ALIB_WARNINGS_IGNORE_NOTHING_RETURNED |
#define | ALIB_WARNINGS_IGNORE_RESERVED_IDENTIFIER |
#define | ALIB_WARNINGS_IGNORE_SIGN_CONVERSION |
#define | ALIB_WARNINGS_IGNORE_UNUSED_FUNCTION |
#define | ALIB_WARNINGS_IGNORE_UNUSED_LAMBDA_CAPTURE |
#define | ALIB_WARNINGS_IGNORE_UNUSED_MACRO |
#define | ALIB_WARNINGS_IGNORE_UNUSED_PARAMETER |
#define | ALIB_WARNINGS_IGNORE_UNUSED_VARIABLE |
#define | ALIB_WARNINGS_MACRO_NOT_USED_OFF |
#define | ALIB_WARNINGS_OVERLOAD_VIRTUAL_OFF |
#define | ALIB_WARNINGS_RESERVED_MACRO_NAME_OFF |
#define | ALIB_WARNINGS_RESTORE _Pragma("clang diagnostic pop") \ |
#define | ALIB_WARNINGS_UNINITIALIZED_OFF |
ALib Module Characters Feature Selection | |
#define | ALIB_CHARACTERS_SIZEOF_WCHAR ALIB_SIZEOF_WCHAR_T |
#define | ALIB_CHARACTERS_WIDE 1 |
C/C++ Preprocessor Helper Macros | |
#define | ALIB_COMMA , |
#define | ALIB_COMMA_DBG , |
#define | ALIB_CONCAT(a, b) |
#define | ALIB_EMPTY |
#define | ALIB_IDENTIFIER(prefix) |
#define | ALIB_NSTRINGIFY(a) |
#define | ALIB_STATIC_ASSERT(CondVariable, Cond, Message) |
#define | ALIB_STATIC_DENY(CondVariable, Cond, Message) |
#define | ALIB_STRINGIFY(a) |
C++ Template Programming Tools | |
#define | ALIB_HAS_METHOD(T, Method, ...) |
#define | ALIB_TVALUE(T) |
Debug Assertions, Warnings and Errors | |
These macros are used with debug-builds of ALib, respectively when symbol ALIB_DEBUG is given. They provide shortcuts into functions of the small foundational module ALib Module Assert - Programmer's Manual. If also module ALox is compiled into the library, then a plug-in that uses ALox for the message output is used. See class ALoxAssertionPlugin for more information. | |
#define | ALIB_ASSERT(cond, domain) |
#define | ALIB_ASSERT_ERROR(cond, domain, ...) |
#define | ALIB_ASSERT_MESSAGE(cond, domain, ...) |
#define | ALIB_ASSERT_RESULT_EQUALS( func, value) |
#define | ALIB_ASSERT_RESULT_GREATER_THAN(func, value) |
#define | ALIB_ASSERT_RESULT_LESS_THAN( func, value) |
#define | ALIB_ASSERT_RESULT_NOT_EQUALS( func, value) |
#define | ALIB_ASSERT_WARNING(cond, domain, ...) |
#define | ALIB_ERROR(domain, ...) |
#define | ALIB_MESSAGE(domain, ...) |
#define | ALIB_WARNING(domain, ...) |
ALib Module Characters | |
The macros in this section are introduced by module ALib Characters. | |
#define | ALIB_CHAR_TYPE_ID_N 1 |
#define | ALIB_CHAR_TYPE_ID_W 2 |
#define | ALIB_CHAR_TYPE_ID_X 3 |
#define | ALIB_CHARACTER_ARRAY( T, TChar, Access, Construction) |
#define | ALIB_CHARACTER_ARRAY_IMPL_BUFFER( T, TChar, ...) |
#define | ALIB_CHARACTER_ARRAY_IMPL_BUFFER_MUTABLE( T, TChar, ...) |
#define | ALIB_CHARACTER_ARRAY_IMPL_CONSTRUCT( T, TChar, ...) |
#define | ALIB_CHARACTER_ARRAY_IMPL_LENGTH( T, TChar, ...) |
#define | ALIB_CHARACTER_ARRAY_IMPL_LENGTH_MUTABLE( T, TChar, ...) |
#define | ALIB_CHARACTER_ARRAY_MUTABLE( T, TChar, Construction) |
#define | ALIB_CHARACTER_ZT_ARRAY( T, TChar, Access, Construction) |
#define | ALIB_CHARACTER_ZT_ARRAY_IMPL_BUFFER( T, TChar, ...) |
#define | ALIB_CHARACTER_ZT_ARRAY_IMPL_BUFFER_MUTABLE(T, TChar, ...) |
#define | ALIB_CHARACTER_ZT_ARRAY_IMPL_CONSTRUCT( T, TChar, ...) |
#define | ALIB_CHARACTER_ZT_ARRAY_IMPL_LENGTH( T, TChar, ...) |
#define | ALIB_CHARACTER_ZT_ARRAY_IMPL_LENGTH_MUTABLE(T, TChar, ...) |
#define | ALIB_CHARACTER_ZT_ARRAY_MUTABLE(T, TChar, Construction) |
Macros for Resource Locking and Recursive Programming | |
#define | ALIB_DBG_PREVENT_RECURSIVE_METHOD_CALLS |
#define | ALIB_DBG_PREVENT_RECURSIVE_METHOD_CALLS_MEMBER_DECL bool dbgRecursionDetectionFlag = false; |
#define | ALIB_OWN( ownable) |
#define | ALIB_OWN_RECURSIVE(ownable) |
#define | ALIB_OWN_SHARED( ownable) |
ALib Module Threads | |
While macros in this section logically belong to module ALib Threads, they are available (but empty) also when this module is not included in the ALib Build. An explanation to this is given with chapter 1.2 Threading-Agnostic Software of this module's Programmer's Manual. Their definition depends on the setting of ALIB_DEBUG_CRITICAL_SECTIONS, which defaults to If the symbol is not set, all the symbols in this section are empty. | |
#define | ALIB_DCS ALIB_OWN(*this) |
#define | ALIB_DCS_ACQUIRE Acquire(ALIB_CALLER); |
#define | ALIB_DCS_ACQUIRE_SHARED AcquireShared(ALIB_CALLER); |
#define | ALIB_DCS_ACQUIRE_SHARED_WITH(CS) |
#define | ALIB_DCS_ACQUIRE_WITH(CS) |
#define | ALIB_DCS_RELEASE Release(ALIB_CALLER); |
#define | ALIB_DCS_RELEASE_SHARED ReleaseShared(ALIB_CALLER); |
#define | ALIB_DCS_RELEASE_SHARED_WITH(CS) |
#define | ALIB_DCS_RELEASE_WITH(CS) |
#define | ALIB_DCS_SHARED ALIB_OWN_SHARED(*this) |
#define | ALIB_DCS_SHARED_WITH(CS) |
#define | ALIB_DCS_WITH(CS) |
#define | ALIB_LOCK ALIB_OWN(*this) |
#define | ALIB_LOCK_RECURSIVE ALIB_OWN_RECURSIVE(*this) |
#define | ALIB_LOCK_RECURSIVE_WITH(lock) |
#define | ALIB_LOCK_SHARED ALIB_OWN_SHARED(*this) |
#define | ALIB_LOCK_SHARED_WITH(lock) |
#define | ALIB_LOCK_WITH(lock) |