#include <di/util/movable_box.h>
Public Member Functions | |
MovableBox ()=default | |
MovableBox (MovableBox const &)=delete | |
constexpr | MovableBox (MovableBox &&) |
auto | operator= (MovableBox const &) -> MovableBox &=delete |
auto | operator= (MovableBox &&) -> MovableBox &=delete |
template<typename... Args> requires (concepts::ConstructibleFrom<T, Args...>) | |
constexpr | MovableBox (types::InPlace, Args &&... args) |
constexpr auto | value () &-> T & |
constexpr auto | value () const &-> T const & |
constexpr auto | value () &&-> T && |
constexpr auto | value () const &&-> T const && |
MovableBox takes a non-movable default constructible type T and allows it to be move constructed, by defaulting the new T.
This is intended to be used by objects which internally use a mutex or atomic variable, but need to be movable so that they can be passed through an Expected<>.
|
default |
|
delete |
|
inlineconstexpr |
|
inlineexplicitconstexpr |
|
delete |
|
delete |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |