Classes | Namespaces | Functions
optional.h File Reference
#include "absl/base/config.h"
#include "absl/utility/utility.h"
#include <cassert>
#include <functional>
#include <initializer_list>
#include <type_traits>
#include <utility>
#include "absl/base/attributes.h"
#include "absl/base/internal/inline_variable.h"
#include "absl/meta/type_traits.h"
#include "absl/types/bad_optional_access.h"
#include "absl/types/internal/optional.h"
Include dependency graph for optional.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  std::hash< absl::optional< T > >
 
struct  absl::nullopt_t
 
class  absl::optional< T >
 

Namespaces

 absl
 
 std
 

Functions

 absl::ABSL_INTERNAL_INLINE_CONSTEXPR (nullopt_t, nullopt, nullopt_t(optional_internal::init_t()))
 
template<typename T >
constexpr optional< typename std::decay< T >::type > absl::make_optional (T &&v)
 
template<typename T , typename... Args>
constexpr optional< T > absl::make_optional (Args &&... args)
 
template<typename T , typename U , typename... Args>
constexpr optional< T > absl::make_optional (std::initializer_list< U > il, Args &&... args)
 
template<typename T , typename U >
constexpr auto absl::operator!= (const optional< T > &x, const optional< U > &y) -> decltype(optional_internal::convertible_to_bool(*x != *y))
 
template<typename T >
constexpr bool absl::operator!= (const optional< T > &x, nullopt_t) noexcept
 
template<typename T >
constexpr bool absl::operator!= (nullopt_t, const optional< T > &x) noexcept
 
template<typename T , typename U >
constexpr auto absl::operator!= (const optional< T > &x, const U &v) -> decltype(optional_internal::convertible_to_bool(*x !=v))
 
template<typename T , typename U >
constexpr auto absl::operator!= (const U &v, const optional< T > &x) -> decltype(optional_internal::convertible_to_bool(v != *x))
 
template<typename T , typename U >
constexpr auto absl::operator< (const optional< T > &x, const optional< U > &y) -> decltype(optional_internal::convertible_to_bool(*x< *y))
 
template<typename T >
constexpr bool absl::operator< (const optional< T > &, nullopt_t) noexcept
 
template<typename T >
constexpr bool absl::operator< (nullopt_t, const optional< T > &x) noexcept
 
template<typename T , typename U >
constexpr auto absl::operator< (const optional< T > &x, const U &v) -> decltype(optional_internal::convertible_to_bool(*x< v))
 
template<typename T , typename U >
constexpr auto absl::operator< (const U &v, const optional< T > &x) -> decltype(optional_internal::convertible_to_bool(v< *x))
 
template<typename T , typename U >
constexpr auto absl::operator<= (const optional< T > &x, const optional< U > &y) -> decltype(optional_internal::convertible_to_bool(*x<= *y))
 
template<typename T >
constexpr bool absl::operator<= (const optional< T > &x, nullopt_t) noexcept
 
template<typename T >
constexpr bool absl::operator<= (nullopt_t, const optional< T > &) noexcept
 
template<typename T , typename U >
constexpr auto absl::operator<= (const optional< T > &x, const U &v) -> decltype(optional_internal::convertible_to_bool(*x<=v))
 
template<typename T , typename U >
constexpr auto absl::operator<= (const U &v, const optional< T > &x) -> decltype(optional_internal::convertible_to_bool(v<= *x))
 
template<typename T , typename U >
constexpr auto absl::operator== (const optional< T > &x, const optional< U > &y) -> decltype(optional_internal::convertible_to_bool(*x== *y))
 
template<typename T >
constexpr bool absl::operator== (const optional< T > &x, nullopt_t) noexcept
 
template<typename T >
constexpr bool absl::operator== (nullopt_t, const optional< T > &x) noexcept
 
template<typename T , typename U >
constexpr auto absl::operator== (const optional< T > &x, const U &v) -> decltype(optional_internal::convertible_to_bool(*x==v))
 
template<typename T , typename U >
constexpr auto absl::operator== (const U &v, const optional< T > &x) -> decltype(optional_internal::convertible_to_bool(v== *x))
 
template<typename T , typename U >
constexpr auto absl::operator> (const optional< T > &x, const optional< U > &y) -> decltype(optional_internal::convertible_to_bool(*x > *y))
 
template<typename T >
constexpr bool absl::operator> (const optional< T > &x, nullopt_t) noexcept
 
template<typename T >
constexpr bool absl::operator> (nullopt_t, const optional< T > &) noexcept
 
template<typename T , typename U >
constexpr auto absl::operator> (const optional< T > &x, const U &v) -> decltype(optional_internal::convertible_to_bool(*x > v))
 
template<typename T , typename U >
constexpr auto absl::operator> (const U &v, const optional< T > &x) -> decltype(optional_internal::convertible_to_bool(v > *x))
 
template<typename T , typename U >
constexpr auto absl::operator>= (const optional< T > &x, const optional< U > &y) -> decltype(optional_internal::convertible_to_bool(*x >= *y))
 
template<typename T >
constexpr bool absl::operator>= (const optional< T > &, nullopt_t) noexcept
 
template<typename T >
constexpr bool absl::operator>= (nullopt_t, const optional< T > &x) noexcept
 
template<typename T , typename U >
constexpr auto absl::operator>= (const optional< T > &x, const U &v) -> decltype(optional_internal::convertible_to_bool(*x >=v))
 
template<typename T , typename U >
constexpr auto absl::operator>= (const U &v, const optional< T > &x) -> decltype(optional_internal::convertible_to_bool(v >= *x))
 
template<typename T , typename std::enable_if< std::is_move_constructible< T >::value &&type_traits_internal::IsSwappable< T >::value, bool >::type = false>
void absl::swap (optional< T > &a, optional< T > &b) noexcept(noexcept(a.swap(b)))
 


abseil_cpp
Author(s):
autogenerated on Mon Feb 28 2022 21:31:22