ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
Optional.h File Reference
#include <cassert>
#include <functional>
#include <initializer_list>
#include <stdexcept>
#include <string>
#include <type_traits>
#include <utility>
#include "CVCoreLib.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  cloudViewer::utility::in_place_t
 
struct  cloudViewer::utility::in_place_index_t< I >
 
struct  cloudViewer::utility::in_place_type_t< T >
 
struct  cloudViewer::utility::detail_::has_overloaded_addressof< T >
 
struct  cloudViewer::utility::trivial_init_t
 
struct  cloudViewer::utility::nullopt_t
 
struct  cloudViewer::utility::nullopt_t::init
 
class  cloudViewer::utility::bad_optional_access
 
union  cloudViewer::utility::storage_t< T >
 
union  cloudViewer::utility::constexpr_storage_t< T >
 
struct  cloudViewer::utility::optional_base< T >
 
struct  cloudViewer::utility::constexpr_optional_base< T >
 
class  cloudViewer::utility::optional< T >
 
class  cloudViewer::utility::optional< T & >
 
class  cloudViewer::utility::optional< T && >
 
struct  std::hash< cloudViewer::utility::optional< T > >
 
struct  std::hash< cloudViewer::utility::optional< T & > >
 

Namespaces

 cloudViewer
 Generic file read and write utility for python interface.
 
 cloudViewer::utility
 
 cloudViewer::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 cloudViewer::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 && cloudViewer::utility::constexpr_forward (typename std::remove_reference< T >::type &t) noexcept
 
template<class T >
constexpr T && cloudViewer::utility::constexpr_forward (typename std::remove_reference< T >::type &&t) noexcept
 
template<class T >
constexpr std::remove_reference< T >::type && cloudViewer::utility::constexpr_move (T &&t) noexcept
 
template<typename T , typename std::enable_if< !has_overloaded_addressof< T > ::value, bool >::type = false>
constexpr T * cloudViewer::utility::detail_::static_addressof (T &ref)
 
template<typename T , typename std::enable_if< has_overloaded_addressof< T > ::value, bool >::type = false>
T * cloudViewer::utility::detail_::static_addressof (T &ref)
 
template<class U >
constexpr U cloudViewer::utility::detail_::convert (U v)
 
template<class T >
constexpr bool cloudViewer::utility::operator== (const optional< T > &x, const optional< T > &y)
 
template<class T >
constexpr bool cloudViewer::utility::operator!= (const optional< T > &x, const optional< T > &y)
 
template<class T >
constexpr bool cloudViewer::utility::operator< (const optional< T > &x, const optional< T > &y)
 
template<class T >
constexpr bool cloudViewer::utility::operator> (const optional< T > &x, const optional< T > &y)
 
template<class T >
constexpr bool cloudViewer::utility::operator<= (const optional< T > &x, const optional< T > &y)
 
template<class T >
constexpr bool cloudViewer::utility::operator>= (const optional< T > &x, const optional< T > &y)
 
template<class T >
constexpr bool cloudViewer::utility::operator== (const optional< T > &x, nullopt_t) noexcept
 
template<class T >
constexpr bool cloudViewer::utility::operator== (nullopt_t, const optional< T > &x) noexcept
 
template<class T >
constexpr bool cloudViewer::utility::operator!= (const optional< T > &x, nullopt_t) noexcept
 
template<class T >
constexpr bool cloudViewer::utility::operator!= (nullopt_t, const optional< T > &x) noexcept
 
template<class T >
constexpr bool cloudViewer::utility::operator< (const optional< T > &, nullopt_t) noexcept
 
template<class T >
constexpr bool cloudViewer::utility::operator< (nullopt_t, const optional< T > &x) noexcept
 
template<class T >
constexpr bool cloudViewer::utility::operator<= (const optional< T > &x, nullopt_t) noexcept
 
template<class T >
constexpr bool cloudViewer::utility::operator<= (nullopt_t, const optional< T > &) noexcept
 
template<class T >
constexpr bool cloudViewer::utility::operator> (const optional< T > &x, nullopt_t) noexcept
 
template<class T >
constexpr bool cloudViewer::utility::operator> (nullopt_t, const optional< T > &) noexcept
 
template<class T >
constexpr bool cloudViewer::utility::operator>= (const optional< T > &, nullopt_t) noexcept
 
template<class T >
constexpr bool cloudViewer::utility::operator>= (nullopt_t, const optional< T > &x) noexcept
 
template<class T >
constexpr bool cloudViewer::utility::operator== (const optional< T > &x, const T &v)
 
template<class T >
constexpr bool cloudViewer::utility::operator== (const T &v, const optional< T > &x)
 
template<class T >
constexpr bool cloudViewer::utility::operator!= (const optional< T > &x, const T &v)
 
template<class T >
constexpr bool cloudViewer::utility::operator!= (const T &v, const optional< T > &x)
 
template<class T >
constexpr bool cloudViewer::utility::operator< (const optional< T > &x, const T &v)
 
template<class T >
constexpr bool cloudViewer::utility::operator> (const T &v, const optional< T > &x)
 
template<class T >
constexpr bool cloudViewer::utility::operator> (const optional< T > &x, const T &v)
 
template<class T >
constexpr bool cloudViewer::utility::operator< (const T &v, const optional< T > &x)
 
template<class T >
constexpr bool cloudViewer::utility::operator>= (const optional< T > &x, const T &v)
 
template<class T >
constexpr bool cloudViewer::utility::operator<= (const T &v, const optional< T > &x)
 
template<class T >
constexpr bool cloudViewer::utility::operator<= (const optional< T > &x, const T &v)
 
template<class T >
constexpr bool cloudViewer::utility::operator>= (const T &v, const optional< T > &x)
 
template<class T >
constexpr bool cloudViewer::utility::operator== (const optional< T & > &x, const T &v)
 
template<class T >
constexpr bool cloudViewer::utility::operator== (const T &v, const optional< T & > &x)
 
template<class T >
constexpr bool cloudViewer::utility::operator!= (const optional< T & > &x, const T &v)
 
template<class T >
constexpr bool cloudViewer::utility::operator!= (const T &v, const optional< T & > &x)
 
template<class T >
constexpr bool cloudViewer::utility::operator< (const optional< T & > &x, const T &v)
 
template<class T >
constexpr bool cloudViewer::utility::operator> (const T &v, const optional< T & > &x)
 
template<class T >
constexpr bool cloudViewer::utility::operator> (const optional< T & > &x, const T &v)
 
template<class T >
constexpr bool cloudViewer::utility::operator< (const T &v, const optional< T & > &x)
 
template<class T >
constexpr bool cloudViewer::utility::operator>= (const optional< T & > &x, const T &v)
 
template<class T >
constexpr bool cloudViewer::utility::operator<= (const T &v, const optional< T & > &x)
 
template<class T >
constexpr bool cloudViewer::utility::operator<= (const optional< T & > &x, const T &v)
 
template<class T >
constexpr bool cloudViewer::utility::operator>= (const T &v, const optional< T & > &x)
 
template<class T >
constexpr bool cloudViewer::utility::operator== (const optional< const T & > &x, const T &v)
 
template<class T >
constexpr bool cloudViewer::utility::operator== (const T &v, const optional< const T & > &x)
 
template<class T >
constexpr bool cloudViewer::utility::operator!= (const optional< const T & > &x, const T &v)
 
template<class T >
constexpr bool cloudViewer::utility::operator!= (const T &v, const optional< const T & > &x)
 
template<class T >
constexpr bool cloudViewer::utility::operator< (const optional< const T & > &x, const T &v)
 
template<class T >
constexpr bool cloudViewer::utility::operator> (const T &v, const optional< const T & > &x)
 
template<class T >
constexpr bool cloudViewer::utility::operator> (const optional< const T & > &x, const T &v)
 
template<class T >
constexpr bool cloudViewer::utility::operator< (const T &v, const optional< const T & > &x)
 
template<class T >
constexpr bool cloudViewer::utility::operator>= (const optional< const T & > &x, const T &v)
 
template<class T >
constexpr bool cloudViewer::utility::operator<= (const T &v, const optional< const T & > &x)
 
template<class T >
constexpr bool cloudViewer::utility::operator<= (const optional< const T & > &x, const T &v)
 
template<class T >
constexpr bool cloudViewer::utility::operator>= (const T &v, const optional< const T & > &x)
 
template<class T >
void cloudViewer::utility::swap (optional< T > &x, optional< T > &y) noexcept(noexcept(x.swap(y)))
 
template<class T >
constexpr optional< typename std::decay< T >::typecloudViewer::utility::make_optional (T &&v)
 
template<class X >
constexpr optional< X & > cloudViewer::utility::make_optional (std::reference_wrapper< X > v)
 

Variables

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

Macro Definition Documentation

◆ TR2_OPTIONAL_ASSERTED_EXPRESSION

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

Definition at line 73 of file Optional.h.

◆ TR2_OPTIONAL_HOST_CONSTEXPR

#define TR2_OPTIONAL_HOST_CONSTEXPR   constexpr

Definition at line 80 of file Optional.h.

◆ TR2_OPTIONAL_REQUIRES

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

Definition at line 20 of file Optional.h.