ALib C++ Library
Library Version: 2511 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
lang.mpp
Go to the documentation of this file.
1//==================================================================================================
2/// \file
3/// This header-file is part of the \aliblong.
4/// With supporting legacy or module builds, .mpp-files are either recognized by the build-system
5/// as C++20 Module interface files, or are included by the
6/// \ref alib_manual_modules_impludes "import/include headers".
7///
8/// \emoji :copyright: 2013-2025 A-Worx GmbH, Germany.
9/// Published under \ref mainpage_license "Boost Software License".
10//==================================================================================================
11#if !defined(ALIB_C20_MODULES) || ((ALIB_C20_MODULES != 0) && (ALIB_C20_MODULES != 1))
12# error "Symbol ALIB_C20_MODULES has to be given to the compiler as either 0 or 1"
13#endif
14#if ALIB_C20_MODULES
15 module;
16#endif
17//========================================= Global Fragment ========================================
18#include "alib/alib.inl"
19
20#if defined(_WIN32)
21# include <intrin.h>
22#endif
23#include <memory>
24#include <array>
25#include <vector>
26#include <algorithm>
27
28#include <cmath>
29#include <chrono>
30
31#if !ALIB_SINGLE_THREADED
32# include <mutex>
33# include <shared_mutex>
34# include <future>
35# include <condition_variable>
36#endif
37
38#include <cstring>
39#include <typeindex>
40
41#if ALIB_DEBUG
42# include <any>
43# include <iostream>
44# include <span>
45#endif
46
47//============================================== Module ============================================
48#if ALIB_C20_MODULES
49 /// This is a <em><b>C++ Module</b></em> of the \aliblong.
50 /// Due to the dual-compile option (either as C++20 Modules or using legacy C++ inclusion),
51 /// the C++20 Module names are not of further interest or use.<br>
52 /// In general, the names equal the names of the header files listed in the chapter
53 /// \ref alib_manual_modules_impludes of the \alib User Manual.
54 ///
55 /// @see The documentation of the <em><b>"ALib Module"</b></em> given with the corresponding
56 /// Programmer's Manual \alib_lang.
57 export module ALib.Lang;
58#else
59#endif
60
61//============================================= Exports ============================================
62ALIB_EXPORT namespace alib {
63
64/// This is a simple copyable set of bits comprising the compilation flags.
65/// @see Used with methods \alib{Bootstrap} which calls \alib{AssertALibVersionAndFlags}.
67 unsigned char bits[5]; ///< The Flags.
68};
69}
70
72#include "alib/assert.inl"
73#include "alib/mainargs.inl"
74#include "alib/chk_nc.inl"
75#include "alib/lang/tmp.inl"
84#include "alib/lang/bits.inl"
85#include "alib/lang/bitset.inl"
86#include "alib/lang/owner.inl"
87#include "alib/lang/plugins.inl"
89
#define ALIB_EXPORT
Definition alib.inl:497
unsigned char bits[5]
The Flags.
Definition lang.mpp:67