Hall A ROOT/C++ Analyzer (podd)
Loading...
Searching...
No Matches
optional.hpp File Reference
#include <utility>
#include <type_traits>
#include <initializer_list>
#include <cassert>
#include <functional>
#include <string>
#include <stdexcept>
Include dependency graph for optional.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  std::experimental::bad_optional_access
 
struct  std::experimental::constexpr_optional_base< T >
 
union  std::experimental::constexpr_storage_t< T >
 
struct  std::experimental::is_nothrow_move_assignable< T >::has_nothrow_move_assign< X, has_any_move_assign >
 
struct  std::experimental::is_nothrow_move_assignable< T >::has_nothrow_move_assign< X, true >
 
struct  std::experimental::detail_::has_overloaded_addressof< T >
 
struct  std::hash< std::experimental::optional< T & > >
 
struct  std::hash< std::experimental::optional< T > >
 
struct  std::experimental::in_place_t
 
struct  std::experimental::nullopt_t::init
 
struct  std::experimental::is_assignable< T, U >
 
struct  std::experimental::is_nothrow_move_assignable< T >
 
struct  std::experimental::is_nothrow_move_constructible< T >
 
struct  std::experimental::nullopt_t
 
class  std::experimental::optional< T >
 
class  std::experimental::optional< T & >
 
class  std::experimental::optional< T && >
 
struct  std::experimental::optional_base< T >
 
union  std::experimental::storage_t< T >
 
struct  std::experimental::trivial_init_t
 

Namespaces

namespace  std
 STL namespace.
 
namespace  std::experimental
 
namespace  std::experimental::detail_
 
namespace  std::experimental::detail_::swap_ns
 

Macros

#define OPTIONAL_CONSTEXPR_INIT_LIST
 
#define OPTIONAL_HAS_CONSTEXPR_INIT_LIST   0
 
#define OPTIONAL_HAS_MOVE_ACCESSORS   0
 
#define OPTIONAL_HAS_THIS_RVALUE_REFS   0
 
#define OPTIONAL_MUTABLE_CONSTEXPR   constexpr
 
#define TR2_OPTIONAL_ASSERTED_EXPRESSION(CHECK, EXPR)   ((CHECK) ? (EXPR) : ([]{assert(!#CHECK);}(), (EXPR)))
 
#define TR2_OPTIONAL_REQUIRES(...)   typename enable_if<__VA_ARGS__::value, bool>::type = false
 

Typedefs

template<typename T >
using std::experimental::is_trivially_destructible = std::has_trivial_destructor< T >
 
template<class T >
using std::experimental::OptionalBase = typename std::conditional< is_trivially_destructible< T >::value, constexpr_optional_base< typename std::remove_const< T >::type >, optional_base< typename std::remove_const< T >::type > >::type
 

Functions

template<class T >
void std::experimental::detail_::swap_ns::adl_swap (T &t, T &u) noexcept(noexcept(swap(t, u)))
 
template<class T >
constexpr T && std::experimental::constexpr_forward (typename std::remove_reference< T >::type &&t) noexcept
 
template<class T >
constexpr T && std::experimental::constexpr_forward (typename std::remove_reference< T >::type &t) noexcept
 
template<class T >
constexpr std::remove_reference< T >::type && std::experimental::constexpr_move (T &&t) noexcept
 
template<class U >
constexpr U std::experimental::detail_::convert (U v)
 
template<class X >
constexpr optional< X & > std::experimental::make_optional (reference_wrapper< X > v)
 
template<class T >
constexpr optional< typename decay< T >::typestd::experimental::make_optional (T &&v)
 
template<class T >
constexpr bool std::experimental::operator!= (const optional< const T & > &x, const T &v)
 
template<class T >
constexpr bool std::experimental::operator!= (const optional< T & > &x, const T &v)
 
template<class T >
constexpr bool std::experimental::operator!= (const optional< T > &x, const optional< T > &y)
 
template<class T >
constexpr bool std::experimental::operator!= (const optional< T > &x, const T &v)
 
template<class T >
constexpr bool std::experimental::operator!= (const optional< T > &x, nullopt_t) noexcept
 
template<class T >
constexpr bool std::experimental::operator!= (const T &v, const optional< const T & > &x)
 
template<class T >
constexpr bool std::experimental::operator!= (const T &v, const optional< T & > &x)
 
template<class T >
constexpr bool std::experimental::operator!= (const T &v, const optional< T > &x)
 
template<class T >
constexpr bool std::experimental::operator!= (nullopt_t, const optional< T > &x) noexcept
 
template<class T >
constexpr bool std::experimental::operator< (const optional< const T & > &x, const T &v)
 
template<class T >
constexpr bool std::experimental::operator< (const optional< T & > &x, const T &v)
 
template<class T >
constexpr bool std::experimental::operator< (const optional< T > &, nullopt_t) noexcept
 
template<class T >
constexpr bool std::experimental::operator< (const optional< T > &x, const optional< T > &y)
 
template<class T >
constexpr bool std::experimental::operator< (const optional< T > &x, const T &v)
 
template<class T >
constexpr bool std::experimental::operator< (const T &v, const optional< const T & > &x)
 
template<class T >
constexpr bool std::experimental::operator< (const T &v, const optional< T & > &x)
 
template<class T >
constexpr bool std::experimental::operator< (const T &v, const optional< T > &x)
 
template<class T >
constexpr bool std::experimental::operator< (nullopt_t, const optional< T > &x) noexcept
 
template<class T >
constexpr bool std::experimental::operator<= (const optional< const T & > &x, const T &v)
 
template<class T >
constexpr bool std::experimental::operator<= (const optional< T & > &x, const T &v)
 
template<class T >
constexpr bool std::experimental::operator<= (const optional< T > &x, const optional< T > &y)
 
template<class T >
constexpr bool std::experimental::operator<= (const optional< T > &x, const T &v)
 
template<class T >
constexpr bool std::experimental::operator<= (const optional< T > &x, nullopt_t) noexcept
 
template<class T >
constexpr bool std::experimental::operator<= (const T &v, const optional< const T & > &x)
 
template<class T >
constexpr bool std::experimental::operator<= (const T &v, const optional< T & > &x)
 
template<class T >
constexpr bool std::experimental::operator<= (const T &v, const optional< T > &x)
 
template<class T >
constexpr bool std::experimental::operator<= (nullopt_t, const optional< T > &) noexcept
 
template<class T >
constexpr bool std::experimental::operator== (const optional< const T & > &x, const T &v)
 
template<class T >
constexpr bool std::experimental::operator== (const optional< T & > &x, const T &v)
 
template<class T >
constexpr bool std::experimental::operator== (const optional< T > &x, const optional< T > &y)
 
template<class T >
constexpr bool std::experimental::operator== (const optional< T > &x, const T &v)
 
template<class T >
constexpr bool std::experimental::operator== (const optional< T > &x, nullopt_t) noexcept
 
template<class T >
constexpr bool std::experimental::operator== (const T &v, const optional< const T & > &x)
 
template<class T >
constexpr bool std::experimental::operator== (const T &v, const optional< T & > &x)
 
template<class T >
constexpr bool std::experimental::operator== (const T &v, const optional< T > &x)
 
template<class T >
constexpr bool std::experimental::operator== (nullopt_t, const optional< T > &x) noexcept
 
template<class T >
constexpr bool std::experimental::operator> (const optional< const T & > &x, const T &v)
 
template<class T >
constexpr bool std::experimental::operator> (const optional< T & > &x, const T &v)
 
template<class T >
constexpr bool std::experimental::operator> (const optional< T > &x, const optional< T > &y)
 
template<class T >
constexpr bool std::experimental::operator> (const optional< T > &x, const T &v)
 
template<class T >
constexpr bool std::experimental::operator> (const optional< T > &x, nullopt_t) noexcept
 
template<class T >
constexpr bool std::experimental::operator> (const T &v, const optional< const T & > &x)
 
template<class T >
constexpr bool std::experimental::operator> (const T &v, const optional< T & > &x)
 
template<class T >
constexpr bool std::experimental::operator> (const T &v, const optional< T > &x)
 
template<class T >
constexpr bool std::experimental::operator> (nullopt_t, const optional< T > &) noexcept
 
template<class T >
constexpr bool std::experimental::operator>= (const optional< const T & > &x, const T &v)
 
template<class T >
constexpr bool std::experimental::operator>= (const optional< T & > &x, const T &v)
 
template<class T >
constexpr bool std::experimental::operator>= (const optional< T > &, nullopt_t) noexcept
 
template<class T >
constexpr bool std::experimental::operator>= (const optional< T > &x, const optional< T > &y)
 
template<class T >
constexpr bool std::experimental::operator>= (const optional< T > &x, const T &v)
 
template<class T >
constexpr bool std::experimental::operator>= (const T &v, const optional< const T & > &x)
 
template<class T >
constexpr bool std::experimental::operator>= (const T &v, const optional< T & > &x)
 
template<class T >
constexpr bool std::experimental::operator>= (const T &v, const optional< T > &x)
 
template<class T >
constexpr bool std::experimental::operator>= (nullopt_t, const optional< T > &x) noexcept
 
template<typename T , TR2_OPTIONAL_REQUIRES(!has_overloaded_addressof< T >) >
constexpr Tstd::experimental::detail_::static_addressof (T &ref)
 
template<typename T , TR2_OPTIONAL_REQUIRES(has_overloaded_addressof< T >) >
Tstd::experimental::detail_::static_addressof (T &ref)
 
template<class T >
void std::experimental::swap (optional< T > &x, optional< T > &y) noexcept(noexcept(x.swap(y)))
 

Variables

constexpr struct std::experimental::in_place_t std::experimental::in_place
 
constexpr nullopt_t std::experimental::nullopt {nullopt_t::init()}
 
constexpr struct std::experimental::trivial_init_t std::experimental::trivial_init
 

Macro Definition Documentation

◆ OPTIONAL_CONSTEXPR_INIT_LIST

#define OPTIONAL_CONSTEXPR_INIT_LIST

Definition at line 84 of file optional.hpp.

◆ OPTIONAL_HAS_CONSTEXPR_INIT_LIST

#define OPTIONAL_HAS_CONSTEXPR_INIT_LIST   0

Definition at line 83 of file optional.hpp.

◆ OPTIONAL_HAS_MOVE_ACCESSORS

#define OPTIONAL_HAS_MOVE_ACCESSORS   0

Definition at line 90 of file optional.hpp.

◆ OPTIONAL_HAS_THIS_RVALUE_REFS

#define OPTIONAL_HAS_THIS_RVALUE_REFS   0

Definition at line 75 of file optional.hpp.

◆ OPTIONAL_MUTABLE_CONSTEXPR

#define OPTIONAL_MUTABLE_CONSTEXPR   constexpr

Definition at line 97 of file optional.hpp.

◆ TR2_OPTIONAL_ASSERTED_EXPRESSION

#define TR2_OPTIONAL_ASSERTED_EXPRESSION (   CHECK,
  EXPR 
)    ((CHECK) ? (EXPR) : ([]{assert(!#CHECK);}(), (EXPR)))

Definition at line 202 of file optional.hpp.

◆ TR2_OPTIONAL_REQUIRES

#define TR2_OPTIONAL_REQUIRES (   ...)    typename enable_if<__VA_ARGS__::value, bool>::type = false

Definition at line 21 of file optional.hpp.