template<typename T, bool AutoDestruct = false>
StorageFor class
Provides suitably aligned uninitialized storage for a type T. Use this as a std::aligned_storage replacement that is easier to use and less error prone for common cases (std::aligned_storage_t<sizeof(T), alignof(T)>).
Constructors, destructors, conversion operators
- StorageFor() defaulted constexpr
- StorageFor(InitializeTag) explicit
-
template<typename... Args>StorageFor(InitializeTag, Args && ... args) explicit
- StorageFor(ZeroInitializeTag) explicit
-
template<typename... Args>StorageFor(ZeroInitializeTag, Args && ... args) explicit
- ~StorageFor()
Public functions
- auto constructDefault() -> T*
-
template<typename... Args>auto construct(Args && ... args) -> T*
- void destruct()
- auto ref() -> T&
- auto ref() const -> const T&
- auto data() -> T*
- auto data() const -> const T*
- auto operator->() -> T*
- auto operator->() const -> const T*
- auto operator*() -> T&
- auto operator*() const -> const T&
- auto storage() -> void*
- auto storage() const -> const void*