StormByte C++ Library 1.2.0
StormByte is a comprehensive, cross-platform C++ library aimed at easing system programming, configuration management, logging, and database handling tasks. This library provides a unified API that abstracts away the complexities and inconsistencies of different platforms (Windows, Linux).
Loading...
Searching...
No Matches
Namespaces | Typedefs | Functions
expected.hxx File Reference
#include <StormByte/type_traits.hxx>
#include <expected>
#include <format>
#include <type_traits>
#include <memory>
#include <string>
Include dependency graph for expected.hxx:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  StormByte
 Root namespace of the StormByte suite.
 

Typedefs

template<typename T , class E >
using StormByte::Expected = std::conditional_t< Type::Reference< T >, std::expected< std::reference_wrapper< std::remove_reference_t< T > >, std::shared_ptr< E > >, std::expected< T, std::shared_ptr< E > > >
 std::expected alias with reference and shared-error handling.
 

Functions

template<typename E >
auto StormByte::Unexpected (std::shared_ptr< E > error_ptr)
 Builds std::unexpected from an existing error pointer.
 
template<typename E >
auto StormByte::Unexpected (E &&error)
 Builds std::unexpected by constructing E.
 
template<typename Base , typename Derived >
requires std::is_base_of_v<Base, std::decay_t<Derived>> && (!std::same_as<Base, std::decay_t<Derived>>)
auto StormByte::Unexpected (Derived &&error) -> std::unexpected< std::shared_ptr< Base > >
 Builds std::unexpected<shared_ptr<Base>> from a Derived instance.
 
template<typename E , typename... Args>
auto StormByte::Unexpected (const std::string &fmt, Args &&... args)
 Builds std::unexpected from a format string and E(string) constructor.