11 #ifndef LIBPMEMOBJ_CPP_SPECIALIZATION_HPP
12 #define LIBPMEMOBJ_CPP_SPECIALIZATION_HPP
29 struct sp_element<T[]> {
33 template <
typename T, std::
size_t N>
34 struct sp_element<T[N]> {
41 struct sp_dereference {
46 struct sp_dereference<void> {
51 struct sp_dereference<void const> {
56 struct sp_dereference<void volatile> {
61 struct sp_dereference<void const volatile> {
66 struct sp_dereference<T[]> {
70 template <
typename T, std::
size_t N>
71 struct sp_dereference<T[N]> {
78 struct sp_member_access {
83 struct sp_member_access<T[]> {
87 template <
typename T, std::
size_t N>
88 struct sp_member_access<T[N]> {
95 struct sp_array_access {
100 struct sp_array_access<void> {
101 typedef struct does_not_exist {
105 template <
typename T>
106 struct sp_array_access<T[]> {
110 template <
typename T, std::
size_t N>
111 struct sp_array_access<T[N]> {
117 template <
typename T>
119 enum _vt { value = 0 };
122 template <
typename T, std::
size_t N>
123 struct sp_extent<T[N]> {
124 enum _vt { value = N };
Persistent memory namespace.
Definition: allocation_flag.hpp:15