Sleipnir C++ API
Loading...
Searching...
No Matches
sleipnir::concepts::EmplaceConstructible Concept Reference

#include <sleipnir/util/small_vector.hpp>

Concept definition

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,
typename std::allocator_traits<A>::template rebind_alloc<T>> &&
(
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