#include <sleipnir/util/small_vector.hpp>
template<
typename T,
typename X,
typename A,
typename...
Args>
std::same_as<typename X::value_type, T> &&
(
(
requires { typename X::allocator_type; } &&
std::same_as<typename X::allocator_type,
(
requires (
A m, T*
p,
Args&&... args) {
m.construct(
p, std::forward<Args>(args)...);
} ||
requires (T*
p,
Args&&... args) {
{ std::construct_at(
p, std::forward<Args>(args)...) } -> std::same_as<T*>;
}
)
) ||
(
!requires { typename X::allocator_type; } &&
requires (T*
p,
Args&&... args) {
{ std::construct_at(
p, std::forward<Args> (args)...) } -> std::same_as<T*>;
}
)
)
Definition small_vector.hpp:124
IntrusiveSharedPtr< T > AllocateIntrusiveShared(Alloc alloc, Args &&... args)
Definition IntrusiveSharedPtr.hpp:275