|
| template<typename T> |
| consteval size_t | Hubris::padded_size () |
| |
| template<typename T, typename F> |
| void | Hubris::Traverse (T &&container, F &&func) |
| |
| template<typename T> |
| constexpr ControlBlock * | Hubris::CoAllocate_Unsafe () |
| | Allocates memory for the ControlBlock and T but does not construct T. This can lead to UB if not used carefully.
|
| |
| template<typename T, typename ... Args> |
| constexpr void | Hubris::Construct_T_Inplace (void *placement, Args &&...args) |
| | Constructs any object at location (placment new) with the specified arguments.
|
| |
| template<typename T, typename ... Args> |
| constexpr ControlBlock * | Hubris::CoAllocate (Args &&...args) |
| | Allocates and constructs both the ControlBlock and the Object T and returns the instanciated controlblock.
|
| |
| template<typename T> |
| | Hubris::Handle (T *) -> Handle< T > |
| |
| template<typename T> |
| | Hubris::Shared (T *) -> Shared< T > |
| |
| template<typename T> |
| | Hubris::Shared (Weak< T >) -> Shared< T > |
| |
| template<typename T> |
| | Hubris::Observer (T *) -> Observer< T > |
| |
| template<typename T> |
| constexpr void | swap (Hubris::Handle< T > &lhs, Hubris::Handle< T > &rhs) noexcept |
| |
template<typename T, typename U>
requires Hubris::PolymorphicConvertible<U, T> |
| constexpr void | swap (Hubris::Handle< T > &lhs, Hubris::Handle< U > &rhs) noexcept |
| |
| template<typename T> |
| constexpr void | swap (Hubris::Shared< T > &lhs, Hubris::Shared< T > &rhs) noexcept |
| |
template<typename T, typename U>
requires Hubris::PolymorphicConvertible<U, T> |
| constexpr void | swap (Hubris::Shared< T > &lhs, Hubris::Shared< U > &rhs) noexcept |
| |