Adobe Source Libraries
2.0.0
A collection of C++ libraries.
Loading...
Searching...
No Matches
storage.hpp
Go to the documentation of this file.
1
/*
2
Copyright 2008 Adobe Systems Incorporated
3
Distributed under the Boost Software License - Version 1.0 (see the accompanying file LICENSE
4
or a copy at https://stlab.github.io/adobe_source_libraries/licenses.html)
5
*/
6
7
/**************************************************************************************************/
8
9
#ifndef ADOBE_STORAGE_HPP
10
#define ADOBE_STORAGE_HPP
11
12
#include <
adobe/config.hpp
>
13
14
#include <
adobe/container/std_fwd.hpp
>
15
16
/**************************************************************************************************/
17
18
namespace
adobe
{
19
20
template
<
typename
T>
// T models Container
21
struct
storage_category
;
22
23
class
block_tag
{};
24
class
contiguous_tag
:
public
block_tag
{};
25
class
node_tag
{};
26
27
template
<
typename
T,
typename
A>
28
struct
storage_category
<
std
::
vector
<T, A>> {
29
typedef
contiguous_tag
type
;
30
};
31
32
template
<
typename
T,
typename
A>
33
struct
storage_category
<
std
::deque<T, A>> {
34
typedef
block_tag
type
;
35
};
36
37
template
<
typename
T,
typename
A>
38
struct
storage_category
<
std
::list<T, A>> {
39
typedef
node_tag
type
;
40
};
41
42
template
<
typename
T,
typename
C,
typename
A>
43
struct
storage_category
<
std
::set<T, C, A>> {
44
typedef
node_tag
type
;
45
};
46
47
template
<
typename
T,
typename
C,
typename
A>
48
struct
storage_category
<
std
::multiset<T, C, A>> {
49
typedef
node_tag
type
;
50
};
51
52
template
<
typename
K,
typename
T,
typename
C,
typename
A>
53
struct
storage_category
<
std
::map<K, T, C, A>> {
54
typedef
node_tag
type
;
55
};
56
57
template
<
typename
K,
typename
T,
typename
C,
typename
A>
58
struct
storage_category
<
std
::multimap<K, T, C, A>> {
59
typedef
node_tag
type
;
60
};
61
62
}
// namespace adobe
63
64
/**************************************************************************************************/
65
66
#endif
67
68
/**************************************************************************************************/
adobe::block_tag
Definition
storage.hpp:23
adobe::contiguous_tag
Definition
storage.hpp:24
adobe::node_tag
Definition
storage.hpp:25
adobe::version_1::vector
Definition
vector.hpp:51
config.hpp
adobe
Definition
class_template.hpp:7
std
STL namespace.
std_fwd.hpp
adobe::storage_category< std::deque< T, A > >::type
block_tag type
Definition
storage.hpp:34
adobe::storage_category< std::list< T, A > >::type
node_tag type
Definition
storage.hpp:39
adobe::storage_category< std::map< K, T, C, A > >::type
node_tag type
Definition
storage.hpp:54
adobe::storage_category< std::multimap< K, T, C, A > >::type
node_tag type
Definition
storage.hpp:59
adobe::storage_category< std::multiset< T, C, A > >::type
node_tag type
Definition
storage.hpp:49
adobe::storage_category< std::set< T, C, A > >::type
node_tag type
Definition
storage.hpp:44
adobe::storage_category< std::vector< T, A > >::type
contiguous_tag type
Definition
storage.hpp:29
adobe::storage_category
Definition
storage.hpp:21
adobe
container
storage.hpp
Generated by
1.14.0