PMDK C++ bindings
1.12.1-rc1
This is the C++ bindings documentation for PMDK's libpmemobj.
libpmemobj++
detail
array_traits.hpp
Go to the documentation of this file.
1
// SPDX-License-Identifier: BSD-3-Clause
2
/* Copyright 2016-2018, Intel Corporation */
3
9
#ifndef LIBPMEMOBJ_CPP_ARRAY_TRAITS_HPP
10
#define LIBPMEMOBJ_CPP_ARRAY_TRAITS_HPP
11
12
#include <cstddef>
13
14
namespace
pmem
15
{
16
17
namespace
detail
18
{
19
20
/*
21
* Returns the number of array elements.
22
*/
23
template
<
typename
T>
24
struct
pp_array_elems {
25
enum
{ elems = 1 };
26
};
27
28
/*
29
* Returns the number of array elements.
30
*/
31
template
<
typename
T,
size_t
N>
32
struct
pp_array_elems<T[N]> {
33
enum
{ elems = N };
34
};
35
36
/*
37
* Returns the type of elements in an array.
38
*/
39
template
<
typename
T>
40
struct
pp_array_type;
41
42
/*
43
* Returns the type of elements in an array.
44
*/
45
template
<
typename
T>
46
struct
pp_array_type<T[]> {
47
typedef
T type;
48
};
49
50
/*
51
* Returns the type of elements in an array.
52
*/
53
template
<
typename
T,
size_t
N>
54
struct
pp_array_type<T[N]> {
55
typedef
T type;
56
};
57
58
}
/* namespace detail */
59
60
}
/* namespace pmem */
61
62
#endif
/* LIBPMEMOBJ_CPP_ARRAY_TRAITS_HPP */
pmem
Persistent memory namespace.
Definition:
allocation_flag.hpp:15
Generated by
1.8.20