ALib C++ Library
Library Version: 2511 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
boxing.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 ========================================
19
20#include <cstring>
21#include <functional>
22#include <vector>
23#include <typeindex>
24#include <array>
25#if ALIB_DEBUG && (!ALIB_MONOMEM || !ALIB_CONTAINERS)
26# include <unordered_set>
27# include <unordered_map>
28#endif
29
30#if ALIB_DEBUG_BOXING
31# include <tuple>
32#endif
33
34//============================================== Module ============================================
35#if ALIB_C20_MODULES
36 /// This is a <em><b>C++ Module</b></em> of the \aliblong.
37 /// Due to the dual-compile option (either as C++20 Modules or using legacy C++ inclusion),
38 /// the C++20 Module names are not of further interest or use.<br>
39 /// In general, the names equal the names of the header files listed in the chapter
40 /// \ref alib_manual_modules_impludes of the \alib User Manual.
41 ///
42 /// @see The documentation of the <em><b>"ALib Module"</b></em> given with the corresponding
43 /// Programmer's Manual \alib_boxing.
44 export module ALib.Boxing;
45# if !ALIB_SINGLE_THREADED
46 import ALib.Threads;
47# endif
48 import ALib.Singletons;
49 import ALib.Lang;
50 import ALib.Time;
51# if ALIB_MONOMEM
52 import ALib.Monomem;
53# if ALIB_CONTAINERS
54 import ALib.Containers.HashTable;
55# endif
56# endif
57# if ALIB_STRINGS
58 import ALib.Strings;
59 import ALib.Strings.Token;
60# endif
61#else
62# if !ALIB_SINGLE_THREADED
63# include "ALib.Threads.H"
64# endif
65 #include "ALib.Singletons.H"
66 #include "ALib.Lang.H"
68 #include "ALib.Time.H"
69 #include "ALib.Monomem.H"
70 #include "ALib.Strings.H"
71 #include "ALib.Strings.Token.H"
72#endif
73
74
75//============================================= Exports ============================================
80#include "alib/boxing/box.inl"
81#include "alib/boxing/boxes.inl"
82#include "alib/boxing/enum.inl"
85