5.0.0
Freundlich's C++ toolkit
Loading...
Searching...
No Matches
fcppt::either::object< Failure, Success > Class Template Reference

Detailed Description

template<typename Failure, typename Success>
class fcppt::either::object< Failure, Success >

A class that either holds a success or an error value.

This class is a wrapper around std::expected. The changes are:

  • No default constructor.
  • No operator->, operator* or value function. This has been replaced get_success_unsafe.
  • No error function. This has been replaced with get_failure_unsafe.
  • No assignment from Success. Assign an either instead.
Template Parameters
FailureMust be move constructible.
SuccessMust be move constructible.

Public Types

using failure = Failure
using success = Success
using std_type = std::expected<Success, Failure>

Public Member Functions

 object (Success &&)
 object (Success const &)
 object (Failure &&)
 object (Failure const &)
bool has_success () const
bool has_failure () const
Success & get_success_unsafe ()
Success const & get_success_unsafe () const
Failure & get_failure_unsafe ()
Failure const & get_failure_unsafe () const
std_typeimpl ()
std_type const & impl () const

Member Typedef Documentation

◆ failure

template<typename Failure, typename Success>
using fcppt::either::object< Failure, Success >::failure = Failure

◆ std_type

template<typename Failure, typename Success>
using fcppt::either::object< Failure, Success >::std_type = std::expected<Success, Failure>

◆ success

template<typename Failure, typename Success>
using fcppt::either::object< Failure, Success >::success = Success

Constructor & Destructor Documentation

◆ object() [1/4]

template<typename Failure, typename Success>
fcppt::either::object< Failure, Success >::object ( Success && )
explicit

◆ object() [2/4]

template<typename Failure, typename Success>
fcppt::either::object< Failure, Success >::object ( Success const & )
explicit

◆ object() [3/4]

template<typename Failure, typename Success>
fcppt::either::object< Failure, Success >::object ( Failure && )
explicit

◆ object() [4/4]

template<typename Failure, typename Success>
fcppt::either::object< Failure, Success >::object ( Failure const & )
explicit

Member Function Documentation

◆ get_failure_unsafe() [1/2]

template<typename Failure, typename Success>
Failure & fcppt::either::object< Failure, Success >::get_failure_unsafe ( )
nodiscard

◆ get_failure_unsafe() [2/2]

template<typename Failure, typename Success>
Failure const & fcppt::either::object< Failure, Success >::get_failure_unsafe ( ) const
nodiscard

◆ get_success_unsafe() [1/2]

template<typename Failure, typename Success>
Success & fcppt::either::object< Failure, Success >::get_success_unsafe ( )
nodiscard

◆ get_success_unsafe() [2/2]

template<typename Failure, typename Success>
Success const & fcppt::either::object< Failure, Success >::get_success_unsafe ( ) const
nodiscard

◆ has_failure()

template<typename Failure, typename Success>
bool fcppt::either::object< Failure, Success >::has_failure ( ) const
nodiscard

◆ has_success()

template<typename Failure, typename Success>
bool fcppt::either::object< Failure, Success >::has_success ( ) const
nodiscard

◆ impl() [1/2]

template<typename Failure, typename Success>
std_type & fcppt::either::object< Failure, Success >::impl ( )
nodiscard

◆ impl() [2/2]

template<typename Failure, typename Success>
std_type const & fcppt::either::object< Failure, Success >::impl ( ) const
nodiscard