The Wayback Machine - https://web.archive.org/web/20191217024518/https://ja.cppreference.com/w/cpp/header/optional
名前空間
変種
操作

標準ライブラリヘッダ <optional>

提供: cppreference.com
< cpp‎ | header
 
 
 

目次

クラス

(C++17)
値を保持するかもしれないし保持しないかもしれないラッパー
(クラステンプレート)[edit]
値を格納していない optional へのチェック付きアクセスを表す例外
(クラス)[edit]
std::hash アルゴリズムの特殊化
(クラステンプレートの特殊化)[edit]
(C++17)
未初期化状態の optional 型を表す標識
(クラス)[edit]

定数

(C++17)
nullopt_t 型のオブジェクト
(定数)[edit]

関数

比較
optional オブジェクトを比較します
(関数テンプレート)[edit]
アルゴリズムの特殊化
std::swap アルゴリズムの特殊化
(関数)[edit]
optional オブジェクトを作成します
(関数テンプレート)[edit]

[編集]概要

namespace std {// class template optionaltemplate<class T>class optional;   // no-value state indicatorstruct nullopt_t{/* see description */};inlineconstexpr nullopt_t nullopt(/* unspecified */);   // class bad_optional_accessclass bad_optional_access;   // relational operatorstemplate<class T, class U>constexprbool operator==(const optional<T>&, const optional<U>&);template<class T, class U>constexprbool operator!=(const optional<T>&, const optional<U>&);template<class T, class U>constexprbool operator<(const optional<T>&, const optional<U>&);template<class T, class U>constexprbool operator>(const optional<T>&, const optional<U>&);template<class T, class U>constexprbool operator<=(const optional<T>&, const optional<U>&);template<class T, class U>constexprbool operator>=(const optional<T>&, const optional<U>&);template<class T, three_way_comparable_with<T> U>constexpr compare_three_way_result_t<T,U> operator<=>(const optional<T>&, const optional<U>&);   // comparison with nullopttemplate<class T>constexprbool operator==(const optional<T>&, nullopt_t)noexcept;template<class T>constexpr strong_ordering operator<=>(const optional<T>&, nullopt_t)noexcept;   // comparison with Ttemplate<class T, class U>constexprbool operator==(const optional<T>&, const U&);template<class T, class U>constexprbool operator==(const T&, const optional<U>&);template<class T, class U>constexprbool operator!=(const optional<T>&, const U&);template<class T, class U>constexprbool operator!=(const T&, const optional<U>&);template<class T, class U>constexprbool operator<(const optional<T>&, const U&);template<class T, class U>constexprbool operator<(const T&, const optional<U>&);template<class T, class U>constexprbool operator>(const optional<T>&, const U&);template<class T, class U>constexprbool operator>(const T&, const optional<U>&);template<class T, class U>constexprbool operator<=(const optional<T>&, const U&);template<class T, class U>constexprbool operator<=(const T&, const optional<U>&);template<class T, class U>constexprbool operator>=(const optional<T>&, const U&);template<class T, class U>constexprbool operator>=(const T&, const optional<U>&);template<class T, three_way_comparable_with<T> U>constexpr compare_three_way_result_t<T,U> operator<=>(const optional<T>&, const U&);   // specialized algorithmstemplate<class T>void swap(optional<T>&, optional<T>&)noexcept(/* see description */);   template<class T>constexpr optional</* see description */> make_optional(T&&);template<class T, class... Args>constexpr optional<T> make_optional(Args&&... args);template<class T, class U, class... Args>constexpr optional<T> make_optional(initializer_list<U> il, Args&&... args);   // hash supporttemplate<class T>struct hash;template<class T>struct hash<optional<T>>;}

[編集]クラステンプレート std::optional

namespace std {template<class T>class optional {public:using value_type = T;   // constructorsconstexpr optional()noexcept;constexpr optional(nullopt_t)noexcept;constexpr optional(const optional&);constexpr optional(optional&&)noexcept(/* see description */);template<class... Args>constexprexplicit optional(in_place_t, Args&&...);template<class U, class... Args>constexprexplicit optional(in_place_t, initializer_list<U>, Args&&...);template<class U = T>explicit(/* see description */)constexpr optional(U&&);template<class U>explicit(/* see description */) optional(const optional<U>&);template<class U>explicit(/* see description */) optional(optional<U>&&);   // destructor ~optional();   // assignment optional& operator=(nullopt_t)noexcept;constexpr optional& operator=(const optional&);constexpr optional& operator=(optional&&)noexcept(/* see description */);template<class U = T> optional& operator=(U&&);template<class U> optional& operator=(const optional<U>&);template<class U> optional& operator=(optional<U>&&);template<class... Args> T& emplace(Args&&...);template<class U, class... Args> T& emplace(initializer_list<U>, Args&&...);   // swapvoid swap(optional&)noexcept(/* see description */);   // observersconstexprconst T* operator->()const;constexpr T* operator->();constexprconst T& operator*()const&;constexpr T& operator*()&;constexpr T&& operator*()&&;constexprconst T&& operator*()const&&;constexprexplicit operator bool()constnoexcept;constexprbool has_value()constnoexcept;constexprconst T& value()const&;constexpr T& value()&;constexpr T&& value()&&;constexprconst T&& value()const&&;template<class U>constexpr T value_or(U&&)const&;template<class U>constexpr T value_or(U&&)&&;   // modifiersvoid reset()noexcept;   private: T *val;// exposition only};   template<class T> optional(T)-> optional<T>;}
close