Open3D (C++ API)  0.12.0
Data Structures | Namespaces | Macros | Typedefs | Functions | Variables
Optional.h File Reference

(313315d (Wed Dec 23 23:39:47 2020 -0800))

#include <cassert>
#include <functional>
#include <initializer_list>
#include <stdexcept>
#include <string>
#include <type_traits>
#include <utility>

Go to the source code of this file.

Data Structures

struct  open3d::utility::in_place_t
 
class  open3d::utility::optional< T >
 
struct  open3d::utility::detail_::has_overloaded_addressof< T >
 
struct  open3d::utility::trivial_init_t
 
struct  open3d::utility::nullopt_t
 
struct  open3d::utility::nullopt_t::init
 
class  open3d::utility::bad_optional_access
 
union  open3d::utility::storage_t< T >
 
union  open3d::utility::constexpr_storage_t< T >
 
struct  open3d::utility::optional_base< T >
 
struct  open3d::utility::constexpr_optional_base< T >
 
class  open3d::utility::optional< T >
 
class  open3d::utility::optional< T & >
 
class  open3d::utility::optional< T && >
 
struct  std::hash< open3d::utility::optional< T > >
 
struct  std::hash< open3d::utility::optional< T & > >
 

Namespaces

 open3d
 
 open3d::utility
 
 open3d::utility::detail_
 
 std
 

Macros

#define TR2_OPTIONAL_REQUIRES(...)   typename std::enable_if<__VA_ARGS__::value, bool>::type = false
 
#define TR2_OPTIONAL_ASSERTED_EXPRESSION(CHECK, EXPR)   ((CHECK) ? (EXPR) : ([] { assert(!#CHECK); }(), (EXPR)))
 
#define TR2_OPTIONAL_HOST_CONSTEXPR   constexpr
 

Typedefs

template<class T >
using open3d::utility::OptionalBase = typename std::conditional< std::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 >
constexpr T && open3d::utility::constexpr_forward (typename std::remove_reference< T >::type &t) noexcept
 
template<class T >
constexpr T && open3d::utility::constexpr_forward (typename std::remove_reference< T >::type &&t) noexcept
 
template<class T >
constexpr std::remove_reference< T >::type && open3d::utility::constexpr_move (T &&t) noexcept
 
template<typename T , TR2_OPTIONAL_REQUIRES(!has_overloaded_addressof< T >) >
constexpr T * open3d::utility::detail_::static_addressof (T &ref)
 
template<typename T , TR2_OPTIONAL_REQUIRES(has_overloaded_addressof< T >) >
T * open3d::utility::detail_::static_addressof (T &ref)
 
template<class U >
constexpr U open3d::utility::detail_::convert (U v)
 
template<class T >
constexpr bool open3d::utility::operator== (const optional< T > &x, const optional< T > &y)
 
template<class T >
constexpr bool open3d::utility::operator!= (const optional< T > &x, const optional< T > &y)
 
template<class T >
constexpr bool open3d::utility::operator< (const optional< T > &x, const optional< T > &y)
 
template<class T >
constexpr bool open3d::utility::operator> (const optional< T > &x, const optional< T > &y)
 
template<class T >
constexpr bool open3d::utility::operator<= (const optional< T > &x, const optional< T > &y)
 
template<class T >
constexpr bool open3d::utility::operator>= (const optional< T > &x, const optional< T > &y)
 
template<class T >
constexpr bool open3d::utility::operator== (const optional< T > &x, nullopt_t) noexcept
 
template<class T >
constexpr bool open3d::utility::operator== (nullopt_t, const optional< T > &x) noexcept
 
template<class T >
constexpr bool open3d::utility::operator!= (const optional< T > &x, nullopt_t) noexcept
 
template<class T >
constexpr bool open3d::utility::operator!= (nullopt_t, const optional< T > &x) noexcept
 
template<class T >
constexpr bool open3d::utility::operator< (const optional< T > &, nullopt_t) noexcept
 
template<class T >
constexpr bool open3d::utility::operator< (nullopt_t, const optional< T > &x) noexcept
 
template<class T >
constexpr bool open3d::utility::operator<= (const optional< T > &x, nullopt_t) noexcept
 
template<class T >
constexpr bool open3d::utility::operator<= (nullopt_t, const optional< T > &) noexcept
 
template<class T >
constexpr bool open3d::utility::operator> (const optional< T > &x, nullopt_t) noexcept
 
template<class T >
constexpr bool open3d::utility::operator> (nullopt_t, const optional< T > &) noexcept
 
template<class T >
constexpr bool open3d::utility::operator>= (const optional< T > &, nullopt_t) noexcept
 
template<class T >
constexpr bool open3d::utility::operator>= (nullopt_t, const optional< T > &x) noexcept
 
template<class T >
constexpr bool open3d::utility::operator== (const optional< T > &x, const T &v)
 
template<class T >
constexpr bool open3d::utility::operator== (const T &v, const optional< T > &x)
 
template<class T >
constexpr bool open3d::utility::operator!= (const optional< T > &x, const T &v)
 
template<class T >
constexpr bool open3d::utility::operator!= (const T &v, const optional< T > &x)
 
template<class T >
constexpr bool open3d::utility::operator< (const optional< T > &x, const T &v)
 
template<class T >
constexpr bool open3d::utility::operator> (const T &v, const optional< T > &x)
 
template<class T >
constexpr bool open3d::utility::operator> (const optional< T > &x, const T &v)
 
template<class T >
constexpr bool open3d::utility::operator< (const T &v, const optional< T > &x)
 
template<class T >
constexpr bool open3d::utility::operator>= (const optional< T > &x, const T &v)
 
template<class T >
constexpr bool open3d::utility::operator<= (const T &v, const optional< T > &x)
 
template<class T >
constexpr bool open3d::utility::operator<= (const optional< T > &x, const T &v)
 
template<class T >
constexpr bool open3d::utility::operator>= (const T &v, const optional< T > &x)
 
template<class T >
constexpr bool open3d::utility::operator== (const optional< T &> &x, const T &v)
 
template<class T >
constexpr bool open3d::utility::operator== (const T &v, const optional< T &> &x)
 
template<class T >
constexpr bool open3d::utility::operator!= (const optional< T &> &x, const T &v)
 
template<class T >
constexpr bool open3d::utility::operator!= (const T &v, const optional< T &> &x)
 
template<class T >
constexpr bool open3d::utility::operator< (const optional< T &> &x, const T &v)
 
template<class T >
constexpr bool open3d::utility::operator> (const T &v, const optional< T &> &x)
 
template<class T >
constexpr bool open3d::utility::operator> (const optional< T &> &x, const T &v)
 
template<class T >
constexpr bool open3d::utility::operator< (const T &v, const optional< T &> &x)
 
template<class T >
constexpr bool open3d::utility::operator>= (const optional< T &> &x, const T &v)
 
template<class T >
constexpr bool open3d::utility::operator<= (const T &v, const optional< T &> &x)
 
template<class T >
constexpr bool open3d::utility::operator<= (const optional< T &> &x, const T &v)
 
template<class T >
constexpr bool open3d::utility::operator>= (const T &v, const optional< T &> &x)
 
template<class T >
constexpr bool open3d::utility::operator== (const optional< const T &> &x, const T &v)
 
template<class T >
constexpr bool open3d::utility::operator== (const T &v, const optional< const T &> &x)
 
template<class T >
constexpr bool open3d::utility::operator!= (const optional< const T &> &x, const T &v)
 
template<class T >
constexpr bool open3d::utility::operator!= (const T &v, const optional< const T &> &x)
 
template<class T >
constexpr bool open3d::utility::operator< (const optional< const T &> &x, const T &v)
 
template<class T >
constexpr bool open3d::utility::operator> (const T &v, const optional< const T &> &x)
 
template<class T >
constexpr bool open3d::utility::operator> (const optional< const T &> &x, const T &v)
 
template<class T >
constexpr bool open3d::utility::operator< (const T &v, const optional< const T &> &x)
 
template<class T >
constexpr bool open3d::utility::operator>= (const optional< const T &> &x, const T &v)
 
template<class T >
constexpr bool open3d::utility::operator<= (const T &v, const optional< const T &> &x)
 
template<class T >
constexpr bool open3d::utility::operator<= (const optional< const T &> &x, const T &v)
 
template<class T >
constexpr bool open3d::utility::operator>= (const T &v, const optional< const T &> &x)
 
template<class T >
void open3d::utility::swap (optional< T > &x, optional< T > &y) noexcept(noexcept(x.swap(y)))
 
template<class T >
constexpr optional< typename std::decay< T >::typeopen3d::utility::make_optional (T &&v)
 
template<class X >
constexpr optional< X & > open3d::utility::make_optional (std::reference_wrapper< X > v)
 

Variables

constexpr in_place_t open3d::utility::in_place {}
 
constexpr struct open3d::utility::trivial_init_t open3d::utility::trivial_init
 
constexpr nullopt_t open3d::utility::nullopt {nullopt_t::init()}
 

Macro Definition Documentation

◆ TR2_OPTIONAL_ASSERTED_EXPRESSION

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

◆ TR2_OPTIONAL_HOST_CONSTEXPR

#define TR2_OPTIONAL_HOST_CONSTEXPR   constexpr

◆ TR2_OPTIONAL_REQUIRES

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