#include <di/any/storage/hybrid_storage.h>
|
static constexpr auto | storage_category () -> StorageCategory |
|
template<typename T> |
static constexpr auto | creation_is_inline (InPlaceType< T >) -> bool |
|
template<typename T> |
static constexpr auto | creation_is_fallible (InPlaceType< T >) -> bool |
|
template<typename Any, typename T, typename... Args>
requires (concepts::ConstructibleFrom<T, Args...> && creation_is_fallible(in_place_type<T>)) |
static constexpr void | create (InPlaceType< Any >, meta::LikeExpected< CreationResult< T >, Any > &self, InPlaceType< T >, Args &&... args) |
|
template<typename T, typename... Args>
requires (concepts::ConstructibleFrom<T, Args...>) |
static constexpr auto | init (HybridStorage *self, InPlaceType< T >, Args &&... args) |
|
static constexpr void | move_construct (concepts::VTableFor< Interface > auto &vtable, HybridStorage *dest, HybridStorage *source) |
|
template<concepts::VTableFor< Interface > VTable>
requires (category == StorageCategory::MoveOnly) |
static constexpr void | move_assign (VTable &dest_vtable, HybridStorage *dest, VTable &source_vtable, HybridStorage *source) |
|
static constexpr void | destroy (concepts::VTableFor< Interface > auto &vtable, HybridStorage *self) |
|
◆ CreationResult
template<
StorageCategory category = StorageCategory::MoveOnly,
size_t inline_size = 2 * sizeof(void*),
size_t inline_align = alignof(void*), concepts::Allocator Alloc = platform::DefaultAllocator>
template<typename T>
Initial value:
constexpr auto in_place_type
Definition in_place_type.h:12
static constexpr auto creation_is_fallible(InPlaceType< T >) -> bool
Definition hybrid_storage.h:60
◆ Interface
template<
StorageCategory category = StorageCategory::MoveOnly,
size_t inline_size = 2 * sizeof(void*),
size_t inline_align = alignof(void*), concepts::Allocator Alloc = platform::DefaultAllocator>
◆ Manage
template<
StorageCategory category = StorageCategory::MoveOnly,
size_t inline_size = 2 * sizeof(void*),
size_t inline_align = alignof(void*), concepts::Allocator Alloc = platform::DefaultAllocator>
◆ HybridStorage() [1/2]
template<
StorageCategory category = StorageCategory::MoveOnly,
size_t inline_size = 2 * sizeof(void*),
size_t inline_align = alignof(void*), concepts::Allocator Alloc = platform::DefaultAllocator>
◆ HybridStorage() [2/2]
template<
StorageCategory category = StorageCategory::MoveOnly,
size_t inline_size = 2 * sizeof(void*),
size_t inline_align = alignof(void*), concepts::Allocator Alloc = platform::DefaultAllocator>
◆ ~HybridStorage()
template<
StorageCategory category = StorageCategory::MoveOnly,
size_t inline_size = 2 * sizeof(void*),
size_t inline_align = alignof(void*), concepts::Allocator Alloc = platform::DefaultAllocator>
◆ create()
template<
StorageCategory category = StorageCategory::MoveOnly,
size_t inline_size = 2 * sizeof(void*),
size_t inline_align = alignof(void*), concepts::Allocator Alloc = platform::DefaultAllocator>
◆ creation_is_fallible()
template<
StorageCategory category = StorageCategory::MoveOnly,
size_t inline_size = 2 * sizeof(void*),
size_t inline_align = alignof(void*), concepts::Allocator Alloc = platform::DefaultAllocator>
template<typename T>
◆ creation_is_inline()
template<
StorageCategory category = StorageCategory::MoveOnly,
size_t inline_size = 2 * sizeof(void*),
size_t inline_align = alignof(void*), concepts::Allocator Alloc = platform::DefaultAllocator>
template<typename T>
◆ destroy()
template<
StorageCategory category = StorageCategory::MoveOnly,
size_t inline_size = 2 * sizeof(void*),
size_t inline_align = alignof(void*), concepts::Allocator Alloc = platform::DefaultAllocator>
◆ down_cast() [1/2]
template<
StorageCategory category = StorageCategory::MoveOnly,
size_t inline_size = 2 * sizeof(void*),
size_t inline_align = alignof(void*), concepts::Allocator Alloc = platform::DefaultAllocator>
template<typename T>
◆ down_cast() [2/2]
template<
StorageCategory category = StorageCategory::MoveOnly,
size_t inline_size = 2 * sizeof(void*),
size_t inline_align = alignof(void*), concepts::Allocator Alloc = platform::DefaultAllocator>
template<typename T>
◆ init()
template<
StorageCategory category = StorageCategory::MoveOnly,
size_t inline_size = 2 * sizeof(void*),
size_t inline_align = alignof(void*), concepts::Allocator Alloc = platform::DefaultAllocator>
template<typename T, typename... Args>
requires (concepts::ConstructibleFrom<T, Args...>)
◆ move_assign()
template<
StorageCategory category = StorageCategory::MoveOnly,
size_t inline_size = 2 * sizeof(void*),
size_t inline_align = alignof(void*), concepts::Allocator Alloc = platform::DefaultAllocator>
static constexpr void di::any::HybridStorage< category, inline_size, inline_align, Alloc >::move_assign |
( |
VTable & | dest_vtable, |
|
|
HybridStorage< category, inline_size, inline_align, Alloc > * | dest, |
|
|
VTable & | source_vtable, |
|
|
HybridStorage< category, inline_size, inline_align, Alloc > * | source ) |
|
inlinestaticconstexpr |
◆ move_construct()
template<
StorageCategory category = StorageCategory::MoveOnly,
size_t inline_size = 2 * sizeof(void*),
size_t inline_align = alignof(void*), concepts::Allocator Alloc = platform::DefaultAllocator>
static constexpr void di::any::HybridStorage< category, inline_size, inline_align, Alloc >::move_construct |
( |
concepts::VTableFor< Interface > auto & | vtable, |
|
|
HybridStorage< category, inline_size, inline_align, Alloc > * | dest, |
|
|
HybridStorage< category, inline_size, inline_align, Alloc > * | source ) |
|
inlinestaticconstexpr |
◆ operator=()
template<
StorageCategory category = StorageCategory::MoveOnly,
size_t inline_size = 2 * sizeof(void*),
size_t inline_align = alignof(void*), concepts::Allocator Alloc = platform::DefaultAllocator>
◆ storage_category()
template<
StorageCategory category = StorageCategory::MoveOnly,
size_t inline_size = 2 * sizeof(void*),
size_t inline_align = alignof(void*), concepts::Allocator Alloc = platform::DefaultAllocator>
◆ detail::HybridStorageManage
template<
StorageCategory category = StorageCategory::MoveOnly,
size_t inline_size = 2 * sizeof(void*),
size_t inline_align = alignof(void*), concepts::Allocator Alloc = platform::DefaultAllocator>
template<typename, concepts::Allocator>
◆ m_pointer
template<
StorageCategory category = StorageCategory::MoveOnly,
size_t inline_size = 2 * sizeof(void*),
size_t inline_align = alignof(void*), concepts::Allocator Alloc = platform::DefaultAllocator>
◆ m_storage
template<
StorageCategory category = StorageCategory::MoveOnly,
size_t inline_size = 2 * sizeof(void*),
size_t inline_align = alignof(void*), concepts::Allocator Alloc = platform::DefaultAllocator>
The documentation for this struct was generated from the following file: