CETL 0.0.0
 
Loading...
Searching...
No Matches
optional.hpp File Reference
#include <cetl/cetl.hpp>
#include <cetl/_helper_enable_copy_move.hpp>
#include <cetl/pf17/utility.hpp>
#include <cetl/pf17/type_traits.hpp>
#include <algorithm>
#include <cassert>
#include <type_traits>
#include <exception>
Include dependency graph for optional.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  cetl::pf17::nullopt_t
 
class  cetl::pf17::bad_optional_access
 
class  cetl::pf17::optional< T >
 

Namespaces

namespace  cetl
 
namespace  cetl::pf17
 

Functions

template<typename T, typename U>
constexpr detail::opt::enable_comparison< decltype(std::declval< const T & >()==std::declval< const U & >())> cetl::pf17::operator== (const optional< T > &lhs, const optional< U > &rhs)
 
template<typename T, typename U>
constexpr detail::opt::enable_comparison< decltype(std::declval< const T & >() !=std::declval< const U & >())> cetl::pf17::operator!= (const optional< T > &lhs, const optional< U > &rhs)
 
template<typename T, typename U>
constexpr detail::opt::enable_comparison< decltype(std::declval< const T & >()< std::declval< const U & >())> cetl::pf17::operator< (const optional< T > &lhs, const optional< U > &rhs)
 
template<typename T, typename U>
constexpr detail::opt::enable_comparison< decltype(std::declval< const T & >()<=std::declval< const U & >())> cetl::pf17::operator<= (const optional< T > &lhs, const optional< U > &rhs)
 
template<typename T, typename U>
constexpr detail::opt::enable_comparison< decltype(std::declval< const T & >() > std::declval< const U & >())> cetl::pf17::operator> (const optional< T > &lhs, const optional< U > &rhs)
 
template<typename T, typename U>
constexpr detail::opt::enable_comparison< decltype(std::declval< const T & >() >=std::declval< const U & >())> cetl::pf17::operator>= (const optional< T > &lhs, const optional< U > &rhs)
 
template<typename T>
constexpr bool cetl::pf17::operator== (const optional< T > &opt, const nullopt_t) noexcept
 
template<typename T>
constexpr bool cetl::pf17::operator== (const nullopt_t, const optional< T > &opt) noexcept
 
template<typename T>
constexpr bool cetl::pf17::operator!= (const optional< T > &opt, const nullopt_t) noexcept
 
template<typename T>
constexpr bool cetl::pf17::operator!= (const nullopt_t, const optional< T > &opt) noexcept
 
template<typename T>
constexpr bool cetl::pf17::operator< (const optional< T > &, const nullopt_t) noexcept
 
template<typename T>
constexpr bool cetl::pf17::operator< (const nullopt_t, const optional< T > &opt) noexcept
 
template<typename T>
constexpr bool cetl::pf17::operator<= (const optional< T > &opt, const nullopt_t) noexcept
 
template<typename T>
constexpr bool cetl::pf17::operator<= (const nullopt_t, const optional< T > &) noexcept
 
template<typename T>
constexpr bool cetl::pf17::operator> (const optional< T > &opt, const nullopt_t) noexcept
 
template<typename T>
constexpr bool cetl::pf17::operator> (const nullopt_t, const optional< T > &) noexcept
 
template<typename T>
constexpr bool cetl::pf17::operator>= (const optional< T > &, const nullopt_t) noexcept
 
template<typename T>
constexpr bool cetl::pf17::operator>= (const nullopt_t, const optional< T > &opt) noexcept
 
template<typename T, typename U>
constexpr detail::opt::enable_comparison< decltype(std::declval< const T & >()==std::declval< const U & >())> cetl::pf17::operator== (const optional< T > &opt, const U &value)
 
template<typename T, typename U>
constexpr detail::opt::enable_comparison< decltype(std::declval< const T & >()==std::declval< const U & >())> cetl::pf17::operator== (const T &value, const optional< U > &opt)
 
template<typename T, typename U>
constexpr detail::opt::enable_comparison< decltype(std::declval< const T & >() !=std::declval< const U & >())> cetl::pf17::operator!= (const optional< T > &opt, const U &value)
 
template<typename T, typename U>
constexpr detail::opt::enable_comparison< decltype(std::declval< const T & >() !=std::declval< const U & >())> cetl::pf17::operator!= (const T &value, const optional< U > &opt)
 
template<typename T, typename U>
constexpr detail::opt::enable_comparison< decltype(std::declval< const T & >()< std::declval< const U & >())> cetl::pf17::operator< (const optional< T > &opt, const U &value)
 
template<typename T, typename U>
constexpr detail::opt::enable_comparison< decltype(std::declval< const T & >()< std::declval< const U & >())> cetl::pf17::operator< (const T &value, const optional< U > &opt)
 
template<typename T, typename U>
constexpr detail::opt::enable_comparison< decltype(std::declval< const T & >()<=std::declval< const U & >())> cetl::pf17::operator<= (const optional< T > &opt, const U &value)
 
template<typename T, typename U>
constexpr detail::opt::enable_comparison< decltype(std::declval< const T & >()<=std::declval< const U & >())> cetl::pf17::operator<= (const T &value, const optional< U > &opt)
 
template<typename T, typename U>
constexpr detail::opt::enable_comparison< decltype(std::declval< const T & >() > std::declval< const U & >())> cetl::pf17::operator> (const optional< T > &opt, const U &value)
 
template<typename T, typename U>
constexpr detail::opt::enable_comparison< decltype(std::declval< const T & >() > std::declval< const U & >())> cetl::pf17::operator> (const T &value, const optional< U > &opt)
 
template<typename T, typename U>
constexpr detail::opt::enable_comparison< decltype(std::declval< const T & >() >=std::declval< const U & >())> cetl::pf17::operator>= (const optional< T > &opt, const U &value)
 
template<typename T, typename U>
constexpr detail::opt::enable_comparison< decltype(std::declval< const T & >() >=std::declval< const U & >())> cetl::pf17::operator>= (const T &value, const optional< U > &opt)
 
template<typename T>
constexpr optional< std::decay_t< T > > cetl::pf17::make_optional (T &&value)
 
template<typename T, typename... Args>
constexpr optional< T > cetl::pf17::make_optional (Args &&... args)
 
template<typename T, typename U, typename... Args>
constexpr optional< T > cetl::pf17::make_optional (std::initializer_list< U > il, Args &&... args)
 

Variables

constexpr nullopt_t cetl::pf17::nullopt {nullopt_t::_detail::_detail}
 

Detailed Description

Defines the C++17 std::optional type and several related entities.