10 template<
typename Alloc,
typename =
void>
13 template<
typename Alloc>
16 template<
typename Alloc>
20 template<
typename Alloc,
typename =
void>
26 template<
typename Alloc>
29 using type =
typename Alloc::size_type;
32 template<
typename Alloc,
typename =
void>
36 template<
typename Alloc,
typename =
void>
39 template<
typename Alloc>
42 template<
typename Alloc>
46 template<
typename Void,
typename...
Types>
49 template<
typename Alloc,
typename...
Args>
52 template<
typename Alloc,
typename...
Args>
56 template<
typename Alloc,
typename Ptr,
typename =
void>
59 template<
typename Alloc,
typename Ptr>
62 template<
typename Alloc,
typename Ptr>
66 template<
typename Alloc,
typename =
void>
69 template<
typename Alloc>
72 template<
typename Alloc>
76 template<
typename Alloc,
typename =
void>
79 template<
typename Alloc>
80 struct has_owns<
Alloc, std::
void_t<decltype(std::declval<Alloc&>().owns(std::declval<void*>()))>> : std::true_type {};
82 template<
typename Alloc>
88 template<
typename Alloc,
bool>
91 template<
typename Alloc>
93 : std::bool_constant<noexcept(std::declval<Alloc&>().allocate(std::declval<size_t>()))> {};
95 template<
typename Alloc>
97 : std::bool_constant<noexcept(std::declval<Alloc&>().allocate(std::declval<size_t>(), std::declval<source_location>()))> {};
99 template<
typename Alloc>
103 template<
typename Alloc>
104 constexpr bool has_nothrow_deallocate_v =
noexcept(std::declval<Alloc&>().deallocate(std::declval<void*>(), std::declval<size_t>()));
115 template<
typename Void,
typename...
Types>
118 template<
typename Alloc,
typename...
Args>
120 : std::bool_constant<noexcept(std::declval<Alloc&>().construct(std::declval<Args>()...))> {};
122 template<
typename Alloc,
typename...
Args>
126 template<
typename Alloc,
typename Ptr,
typename =
void>
129 template<
typename Alloc,
typename Ptr>
131 : std::bool_constant<noexcept(std::declval<Alloc&>().destroy(std::declval<Ptr>()))> {};
133 template<
typename Alloc,
typename Ptr>
137 template<
typename Alloc,
typename =
void>
140 template<
typename Alloc>
142 : std::bool_constant<noexcept(std::declval<Alloc&>().max_size())> {};
144 template<
typename Alloc>
148 template<
typename Alloc,
typename =
void>
151 template<
typename Alloc>
153 : std::bool_constant<noexcept(std::declval<Alloc&>().owns(std::declval<void*>()))> {};
155 template<
typename Alloc>
160 template<
typename Alloc>
Definition fallback_fwd.h:23
typename get_size_type< Alloc, void >::type get_size_type_t
Definition meta.h:33
constexpr bool has_nothrow_construct_v
Definition meta.h:123
constexpr bool has_max_size_v
Definition meta.h:73
constexpr bool has_construct_v
Definition meta.h:53
constexpr bool has_nothrow_destroy_v
Definition meta.h:134
void * allocate(Alloc &alloc, size_t n, const source_location source) noexcept(false)
Definition meta.h:161
constexpr bool has_no_value_type_v
Definition meta.h:17
constexpr bool has_nothrow_equal_v
Definition meta.h:108
constexpr bool has_nothrow_deallocate_v
Definition meta.h:104
constexpr bool has_plain_allocate_v
Definition meta.h:43
constexpr bool has_destroy_v
Definition meta.h:63
constexpr bool has_nothrow_allocate_v
Definition meta.h:100
constexpr bool has_owns_v
Definition meta.h:83
constexpr bool has_nothrow_not_equal_v
Definition meta.h:112
constexpr bool has_nothrow_owns_v
Definition meta.h:156
constexpr bool has_nothrow_max_size_v
Definition meta.h:145
typename Alloc::size_type type
Definition meta.h:29
size_t type
Definition meta.h:23
Definition source_location.h:19