Shortcuts

Template Class optional

Inheritance Relationships

Base Type

  • private OptionalBase< T >

Class Documentation

template<class T>
class optional : private OptionalBase<T>

Public Types

typedef T value_type

Public Functions

constexpr optional() noexcept = default
inline constexpr optional(nullopt_t) noexcept
optional(const optional &rhs) = default
optional(optional &&rhs) = default
template<typename U = T, typename std::enable_if<std::is_constructible<T, U&&>::value && !std::is_same<typename std::decay<U>::type, in_place_t>::value && !std::is_same<typename std::decay<U>::type, optional<T>>::value && std::is_convertible<U&&, T>::value, bool>::type = false>
inline constexpr optional(U &&u)
template<typename U = T, typename std::enable_if<std::is_constructible<T, U&&>::value && !std::is_same<typename std::decay<U>::type, in_place_t>::value && !std::is_same<typename std::decay<U>::type, optional<T>>::value && !std::is_convertible<U&&, T>::value, bool>::type = false>
inline explicit constexpr optional(U &&u)
template<class ...Args>
inline explicit constexpr optional(in_place_t, Args&&... args)
template<class U, class ...Args, typename std::enable_if<std::is_constructible<T, std::initializer_list<U>>::value, bool>::type = false>
inline explicit constexpr optional(in_place_t, std::initializer_list<U> il, Args&&... args)
~optional() = default
inline optional &operator=(nullopt_t) noexcept
optional &operator=(const optional &rhs) = default
optional &operator=(optional &&rhs) = default
template<class U = T>
inline auto operator=(U &&v) -> typename std::enable_if<std::is_constructible<T, U>::value && !std::is_same<typename std::decay<U>::type, optional<T>>::value && (std::is_scalar<T>::value || std::is_same<typename std::decay<U>::type, T>::value) && std::is_assignable<T&, U>::value, optional&>::type
template<class ...Args>
inline void emplace(Args&&... args)
template<class U, class ...Args>
inline void emplace(std::initializer_list<U> il, Args&&... args)
inline void swap(optional<T> &rhs) noexcept(std::is_nothrow_move_constructible<T>::value && noexcept(std::swap(std::declval<T&>(), std::declval<T&>())))
inline explicit constexpr operator bool() const noexcept
inline constexpr bool has_value() const noexcept
inline constexpr T const *operator->() const
inline constexpr T *operator->()
inline constexpr T const &operator*() const &
inline constexpr T &operator*() &
inline constexpr T &&operator*() &&
inline constexpr T const &value() const &
inline constexpr T &value() &
inline constexpr T &&value() &&
template<class V>
inline constexpr T value_or(V &&v) const &
template<class V>
inline constexpr T value_or(V &&v) &&
inline void reset() noexcept

Docs

Access comprehensive developer documentation for PyTorch

View Docs

Tutorials

Get in-depth tutorials for beginners and advanced developers

View Tutorials

Resources

Find development resources and get your questions answered

View Resources