31 template<concepts::Object T, concepts::ConvertibleTo<T&> U>
34 self->
m_pointer = util::addressof(
static_cast<T&
>(util::forward<U>(u)));
37 template<concepts::Object T, concepts::ConvertibleTo<T const&> U>
39 self->
m_const_pointer = util::addressof(
static_cast<T const&
>(util::forward<U>(u)));
42 template<concepts::LanguageFunction T, concepts::ConvertibleTo<T*> U>
44 self->
m_function_pointer =
reinterpret_cast<void (*)()
>(
static_cast<T*
>(util::forward<U>(u)));
RefStorage(RefStorage const &)=default
constexpr RefStorage()
Definition ref_storage.h:26
void(* m_function_pointer)()
Definition ref_storage.h:64
static constexpr void init(RefStorage *self, InPlaceType< T * >, T *u)
Definition ref_storage.h:43
void CreationResult
Definition ref_storage.h:24
auto operator=(RefStorage const &) -> RefStorage &=default
static constexpr auto creation_is_fallible(InPlaceType< T >) -> bool
Definition ref_storage.h:19
static constexpr auto storage_category() -> StorageCategory
Definition ref_storage.h:16
static constexpr void init(RefStorage *self, InPlaceType< T & >, U &&u)
Definition ref_storage.h:33
static constexpr void init(RefStorage *self, InPlaceType< T const & >, T const &u)
Definition ref_storage.h:38
void * m_pointer
Definition ref_storage.h:62
void const * m_const_pointer
Definition ref_storage.h:63
meta::List<> Interface
Definition ref_storage.h:14
constexpr auto down_cast() const -> T *
Definition ref_storage.h:50
Definition language.h:370
StorageCategory
Definition storage_category.h:4
@ Reference
Definition storage_category.h:5
Definition in_place_type.h:5