ALib C++ Library
by
Library Version:
2402 R1
Documentation generated by
Loading...
Searching...
No Matches
home
dev
A-Worx
ALib
src
alib
monomem
monomem/fwds.hpp
Go to the documentation of this file.
1
/** ************************************************************************************************
2
* \file
3
* This header file is part of module \alib_monomem of the \aliblong.
4
*
5
* \emoji :copyright: 2013-2024 A-Worx GmbH, Germany.
6
* Published under \ref mainpage_license "Boost Software License".
7
**************************************************************************************************/
8
#ifndef HPP_ALIB_MONOMEM_FWDS
9
#define HPP_ALIB_MONOMEM_FWDS 1
10
11
#if !defined (HPP_ALIB_LANG_COMMONENUMS_DEFS)
12
# include "
alib/lang/commonenumdefs.hpp
"
13
#endif
14
15
ALIB_ASSERT_MODULE
(MONOMEM)
16
17
namespace
alib
{
namespace
monomem {
18
19
/** ************************************************************************************************
20
* This struct contains three tag-types which denote the type of node-recycling that a container
21
* instantiation is deemed to perform. One of these inner types is to be set as the value
22
* for a corresponding template parameter named \p{TRecycling} found in container types
23
* of this module.
24
*
25
* In the case \b Shared is given, the container type will expose a type definition named
26
* \p{TSharedRecycler} which can be used to define the external shared recycler object.
27
* This object has then to be passed to the constructor of the container instance.
28
*
29
* \see
30
* Chapter \ref alib_monomem_intro_recycling of the Programmer's Manual
31
* for this \alibmod.
32
**************************************************************************************************/
33
struct
Recycling
34
{
35
/** Denotes a private recycling. */
36
struct
Private
{};
37
38
/** Denotes a shared recycling. */
39
struct
Shared
{};
40
41
/** Denotes that no recycling should be performed. */
42
struct
None
{};
43
};
// struct Recycling
44
45
//#################################### Forward declarations ####################################
46
class
MonoAllocator
;
47
template
<
typename
T,
48
typename
TRecycling =
Recycling::Private
>
class
List
;
49
50
template
<
typename
T,
51
typename
TStored,
52
typename
TKey,
53
typename
TIfMapped,
54
typename
THash,
55
typename
TEqual,
56
typename
TAccess,
57
lang::Caching
THashCaching,
58
typename
TRecycling >
class
HashTable
;
59
60
61
}
// namespace alib[::monomem]
62
63
/// Type alias in namespace \b alib.
64
using
Recycling
=
monomem::Recycling
;
65
66
}
// namespace [alib]
67
68
69
#endif
// HPP_ALIB_MONOMEM_FWDS
alib::monomem::HashTable
Definition
hashtable.hpp:454
alib::monomem::List
Definition
list.hpp:70
alib::monomem::MonoAllocator
Definition
monoallocator.hpp:77
commonenumdefs.hpp
ALIB_ASSERT_MODULE
#define ALIB_ASSERT_MODULE(modulename)
Definition
alib.hpp:190
alib::lang::Caching
Caching
Definition
commonenumdefs.hpp:56
alib
Definition
alib.cpp:57
alib::monomem::Recycling::None
Definition
monomem/fwds.hpp:42
alib::monomem::Recycling::Private
Definition
monomem/fwds.hpp:36
alib::monomem::Recycling::Shared
Definition
monomem/fwds.hpp:39
alib::monomem::Recycling
Definition
monomem/fwds.hpp:34