TLE92466ED Driver 2.0.0
API reference
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
tle::expected< T, E > Class Template Reference

Expected type — holds either a value of type T or an error of type E. More...

#include <tle92466ed_expected.hpp>

Public Member Functions

constexpr expected (const T &v) noexcept
 
constexpr expected (T &&v) noexcept
 
constexpr expected (const unexpected< E > &u) noexcept
 
constexpr expected (unexpected< E > &&u) noexcept
 
constexpr expected (const expected &) noexcept=default
 
constexpr expected (expected &&) noexcept=default
 
constexpr expected & operator= (const expected &) noexcept=default
 
constexpr expected & operator= (expected &&) noexcept=default
 
 ~expected ()=default
 
constexpr operator bool () const noexcept
 
constexpr bool has_value () const noexcept
 
constexpr T & value () &noexcept
 
constexpr const T & value () const &noexcept
 
constexpr T && value () &&noexcept
 
constexpr E & error () &noexcept
 
constexpr const E & error () const &noexcept
 
constexpr E && error () &&noexcept
 
constexpr T & operator* () &noexcept
 
constexpr const T & operator* () const &noexcept
 
constexpr T && operator* () &&noexcept
 
constexpr T * operator-> () noexcept
 
constexpr const T * operator-> () const noexcept
 
template<typename U >
constexpr T value_or (U &&default_val) const &noexcept
 
template<typename U , typename = std::enable_if_t<!std::is_same_v<U, T> && std::is_convertible_v<U, T>>>
constexpr expected (const expected< U, E > &other) noexcept
 

Private Attributes

T value_
 
E error_
 
bool has_value_
 

Detailed Description

template<typename T, typename E>
class tle::expected< T, E >

Expected type — holds either a value of type T or an error of type E.

Template Parameters
TValue type
EError type

Stores both members (like tmc51x0::Result<T>). This is acceptable because all types used in this driver are small and trivially copyable.

Constructor & Destructor Documentation

◆ expected() [1/7]

template<typename T , typename E >
constexpr tle::expected< T, E >::expected ( const T &  v)
inlineconstexprnoexcept

◆ expected() [2/7]

template<typename T , typename E >
constexpr tle::expected< T, E >::expected ( T &&  v)
inlineconstexprnoexcept

◆ expected() [3/7]

template<typename T , typename E >
constexpr tle::expected< T, E >::expected ( const unexpected< E > &  u)
inlineconstexprnoexcept

◆ expected() [4/7]

template<typename T , typename E >
constexpr tle::expected< T, E >::expected ( unexpected< E > &&  u)
inlineconstexprnoexcept

◆ expected() [5/7]

template<typename T , typename E >
constexpr tle::expected< T, E >::expected ( const expected< T, E > &  )
constexprdefaultnoexcept

◆ expected() [6/7]

template<typename T , typename E >
constexpr tle::expected< T, E >::expected ( expected< T, E > &&  )
constexprdefaultnoexcept

◆ ~expected()

template<typename T , typename E >
tle::expected< T, E >::~expected ( )
default

◆ expected() [7/7]

template<typename T , typename E >
template<typename U , typename = std::enable_if_t<!std::is_same_v<U, T> && std::is_convertible_v<U, T>>>
constexpr tle::expected< T, E >::expected ( const expected< U, E > &  other)
inlineconstexprnoexcept

Member Function Documentation

◆ error() [1/3]

template<typename T , typename E >
constexpr E && tle::expected< T, E >::error ( ) &&
inlineconstexprnoexcept

◆ error() [2/3]

template<typename T , typename E >
constexpr E & tle::expected< T, E >::error ( ) &
inlineconstexprnoexcept

◆ error() [3/3]

template<typename T , typename E >
constexpr const E & tle::expected< T, E >::error ( ) const &
inlineconstexprnoexcept

◆ has_value()

template<typename T , typename E >
constexpr bool tle::expected< T, E >::has_value ( ) const
inlineconstexprnoexcept

◆ operator bool()

template<typename T , typename E >
constexpr tle::expected< T, E >::operator bool ( ) const
inlineexplicitconstexprnoexcept

◆ operator*() [1/3]

template<typename T , typename E >
constexpr T && tle::expected< T, E >::operator* ( ) &&
inlineconstexprnoexcept

◆ operator*() [2/3]

template<typename T , typename E >
constexpr T & tle::expected< T, E >::operator* ( ) &
inlineconstexprnoexcept

◆ operator*() [3/3]

template<typename T , typename E >
constexpr const T & tle::expected< T, E >::operator* ( ) const &
inlineconstexprnoexcept

◆ operator->() [1/2]

template<typename T , typename E >
constexpr const T * tle::expected< T, E >::operator-> ( ) const
inlineconstexprnoexcept

◆ operator->() [2/2]

template<typename T , typename E >
constexpr T * tle::expected< T, E >::operator-> ( )
inlineconstexprnoexcept

◆ operator=() [1/2]

template<typename T , typename E >
constexpr expected & tle::expected< T, E >::operator= ( const expected< T, E > &  )
constexprdefaultnoexcept

◆ operator=() [2/2]

template<typename T , typename E >
constexpr expected & tle::expected< T, E >::operator= ( expected< T, E > &&  )
constexprdefaultnoexcept

◆ value() [1/3]

template<typename T , typename E >
constexpr T && tle::expected< T, E >::value ( ) &&
inlineconstexprnoexcept

◆ value() [2/3]

template<typename T , typename E >
constexpr T & tle::expected< T, E >::value ( ) &
inlineconstexprnoexcept

◆ value() [3/3]

template<typename T , typename E >
constexpr const T & tle::expected< T, E >::value ( ) const &
inlineconstexprnoexcept

◆ value_or()

template<typename T , typename E >
template<typename U >
constexpr T tle::expected< T, E >::value_or ( U &&  default_val) const &
inlineconstexprnoexcept

Member Data Documentation

◆ error_

template<typename T , typename E >
E tle::expected< T, E >::error_
private

◆ has_value_

template<typename T , typename E >
bool tle::expected< T, E >::has_value_
private

◆ value_

template<typename T , typename E >
T tle::expected< T, E >::value_
private

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