ALib C++ Library
Library Version: 2312 R0
Documentation generated by doxygen
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Macros
modules.hpp File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define ALIB_DOCUMENTATION_URL   "https://alib.dev/"
 defined(ALIB_DOX)
 
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_FILESET(filesetname)
 
#define ALIB_ASSERT_MODULE(modulename)
 
#define ALIB_REVISION   0
 
#define ALIB_VERSION   2312
 
ALib Module Selection

This group of symbols determine the availability of different ALib Modules of the ALib Distribution used. The symbols are defined in header alib/lib/modules.hpp 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 1, hence will include all modules a distribution.

If a symbol is given as 1, all corresponding symbols of dependent modules are also defined to 1, even if one had explicitly given as 0, which is considered a contradicting input.

In addition to the modules, symbols that determine the availability of ALib file sets are available for code selection.

#define ALIB_ALOX   1
 
#define ALIB_BITBUFFER   1
 
#define ALIB_BOXING   1
 
#define ALIB_CHARACTERS   1
 
#define ALIB_CLI   1
 
#define ALIB_CONFIGURATION   1
 
#define ALIB_ENUMS   1
 
#define ALIB_EXPRESSIONS   1
 
#define ALIB_FILESET_COMMON_ENUMS   1
 
#define ALIB_FILESET_LISTS   1
 
#define ALIB_FILESET_MODULES   1
 
#define ALIB_FILESET_OWNER   1
 
#define ALIB_FILESET_PLUGINS   1
 
#define ALIB_MONOMEM   1
 
#define ALIB_RESOURCES   1
 
#define ALIB_RESULTS   1
 
#define ALIB_SINGLETONS   1
 
#define ALIB_STRINGS   1
 
#define ALIB_SYSTEM   1
 
#define ALIB_TEXT   1
 
#define ALIB_THREADS   1
 
#define ALIB_TIME   1
 
Code Selection

The macros listed here include or prune code, dependent on different preprocessor symbols. They are mainly given to avoid #if/#else/#endif statements for small code pieces.

#define ALIB_IF_ALOX(...)   __VA_ARGS__
 
#define ALIB_IF_BOXING(...)   __VA_ARGS__
 
#define ALIB_IF_CHARACTERS(...)   __VA_ARGS__
 
#define ALIB_IF_CLI(...)   __VA_ARGS__
 
#define ALIB_IF_CONFIGURATION(...)   __VA_ARGS__
 
#define ALIB_IF_ENUMS(...)   __VA_ARGS__
 
#define ALIB_IF_EXPRESSIONS(...)   __VA_ARGS__
 
#define ALIB_IF_MONOMEM(...)   __VA_ARGS__
 
#define ALIB_IF_RESOURCES(...)   __VA_ARGS__
 
#define ALIB_IF_RESULTS(...)   __VA_ARGS__
 
#define ALIB_IF_SINGLETONS(...)   __VA_ARGS__
 
#define ALIB_IF_STRINGS(...)   __VA_ARGS__
 
#define ALIB_IF_SYSTEM(...)   __VA_ARGS__
 
#define ALIB_IF_TEXT(...)   __VA_ARGS__
 
#define ALIB_IF_THREADS(...)   __VA_ARGS__
 
#define ALIB_IF_TIME(...)   __VA_ARGS__
 
#define ALIB_IFN_ALOX(...)
 
#define ALIB_IFN_BOXING(...)
 
#define ALIB_IFN_CHARACTERS(...)
 
#define ALIB_IFN_CLI(...)
 
#define ALIB_IFN_CONFIGURATION(...)
 
#define ALIB_IFN_ENUMS(...)
 
#define ALIB_IFN_EXPRESSIONS(...)
 
#define ALIB_IFN_MONOMEM(...)
 
#define ALIB_IFN_RESOURCES(...)
 
#define ALIB_IFN_RESULTS(...)
 
#define ALIB_IFN_SINGLETONS(...)
 
#define ALIB_IFN_STRINGS(...)
 
#define ALIB_IFN_SYSTEM(...)
 
#define ALIB_IFN_TEXT(...)
 
#define ALIB_IFN_THREADS(...)
 
#define ALIB_IFN_TIME(...)
 

Detailed Description


This header file is part of the ALib C++ Library.

© 2013-2023 A-Worx GmbH, Germany. Published under Boost Software License.

This header does neither belong to a fileset, nor to a module of ALib, but is included in any ALib Distribution. Its purpose is to identify given ALib Compiler Symbols related to module selection and enable corresponding symbols (that may be not given) of dependent modules.

Note
This header is not shown in inclusion graphs of this documentation, as it is always included directly or indirectly.

Definition in file modules.hpp.