mimic++ v10.0.1
Loading...
Searching...
No Matches
mimicpp::util::CopyableBox< T > Class Template Reference

Simple copyable value type, which owns a heap-allocated value. More...

#include <CopyableBox.hpp>

Inheritance diagram for mimicpp::util::CopyableBox< T >:
[legend]

Public Member Functions

constexpr ~CopyableBox () noexcept
constexpr CopyableBox (CopyableBox const &other)
constexpr CopyableBox (CopyableBox &&other) noexcept
constexpr CopyableBox & operator= (CopyableBox other) noexcept
constexpr CopyableBox ()
 explicit (false) const expr CopyableBox(T const &value)
 explicit (false) const expr CopyableBox(T &&value)
constexpr T & operator* () noexcept
constexpr T const & operator* () const noexcept
constexpr T * operator-> () noexcept
constexpr T const * operator-> () const noexcept
constexpr operator bool () const noexcept

Friends

constexpr bool operator== (CopyableBox const &lhs, CopyableBox const &rhs)

Detailed Description

template<typename T>
class mimicpp::util::CopyableBox< T >

Simple copyable value type, which owns a heap-allocated value.

Unlike the common std::unique_ptr, this type is directly copyable. Besides that, this type is fully constexpr (unlike std::unique_ptr before C++23).

Constructor & Destructor Documentation

◆ ~CopyableBox()

template<typename T>
mimicpp::util::CopyableBox< T >::~CopyableBox ( )
inlineconstexprnoexcept

◆ CopyableBox() [1/3]

template<typename T>
mimicpp::util::CopyableBox< T >::CopyableBox ( CopyableBox< T > const & other)
inlinenodiscardconstexpr
Here is the call graph for this function:
Here is the caller graph for this function:

◆ CopyableBox() [2/3]

template<typename T>
mimicpp::util::CopyableBox< T >::CopyableBox ( CopyableBox< T > && other)
inlinenodiscardconstexprnoexcept
Here is the call graph for this function:

◆ CopyableBox() [3/3]

template<typename T>
mimicpp::util::CopyableBox< T >::CopyableBox ( )
inlinenodiscardconstexpr

Member Function Documentation

◆ explicit() [1/2]

template<typename T>
mimicpp::util::CopyableBox< T >::explicit ( false ) const &&
inlinenodiscard

◆ explicit() [2/2]

template<typename T>
mimicpp::util::CopyableBox< T >::explicit ( false ) const &
inlinenodiscard

◆ operator bool()

template<typename T>
mimicpp::util::CopyableBox< T >::operator bool ( ) const
inlineexplicitnodiscardconstexprnoexcept

◆ operator*() [1/2]

template<typename T>
T const & mimicpp::util::CopyableBox< T >::operator* ( ) const
inlinenodiscardconstexprnoexcept

◆ operator*() [2/2]

template<typename T>
T & mimicpp::util::CopyableBox< T >::operator* ( )
inlinenodiscardconstexprnoexcept

◆ operator->() [1/2]

template<typename T>
T const * mimicpp::util::CopyableBox< T >::operator-> ( ) const
inlinenodiscardconstexprnoexcept

◆ operator->() [2/2]

template<typename T>
T * mimicpp::util::CopyableBox< T >::operator-> ( )
inlinenodiscardconstexprnoexcept

◆ operator=()

template<typename T>
CopyableBox & mimicpp::util::CopyableBox< T >::operator= ( CopyableBox< T > other)
inlineconstexprnoexcept
Here is the call graph for this function:

◆ operator==

template<typename T>
bool operator== ( CopyableBox< T > const & lhs,
CopyableBox< T > const & rhs )
friend

The documentation for this class was generated from the following file: