Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::experimental::optional

      From cppreference.com
      <cpp‎ |experimental
       
       
       
       
       
      Merged into ISO C++ The functionality described on this page was merged into the mainline ISO C++ standard as of 3/2016, seestd::optional(since C++17)
      Defined in header<experimental/optional>
      template<class T>
      class optional;
      (library fundamentals TS)

      The class templatestd::experimental::optional manages anoptional contained value, i.e. a value that may or may not be present.

      A common use case foroptional is the return value of a function that may fail. As opposed to other approaches, such asstd::pair<T,bool>,optional handles expensive to construct objects well and is more readable, as the intent is expressed explicitly.

      Any instance ofoptional<T> at any given point in time eithercontains a value ordoes not contain a value.

      If anoptional<T>contains a value, the value is guaranteed to be allocated as part of theoptional object footprint, i.e. no dynamic memory allocation ever takes place. Thus, anoptional object models an object, not a pointer, even though theoperator*() andoperator->() are defined.

      When an object of type optional<T> iscontextually converted to bool, the conversion returnstrue if the objectcontains a value andfalse if itdoes not contain a value.

      Theoptional objectcontains a value in the following conditions:

      • The object is initialized with a value of typeT.
      • The object is assigned from anotheroptional thatcontains a value.

      The objectdoes not contain a value in the following conditions:

      • The object is default-initialized.
      • The object is initialized with a value ofstd::experimental::nullopt_t or anoptional object thatdoes not contain a value.
      • The object is assigned from a value ofstd::experimental::nullopt_t or from anoptional thatdoes not contain a value.

      Contents

      [edit]Template parameters

      T - the type of the value to manage initialization state for. The type must meet the requirements ofDestructible.

      [edit]Member types

      Member type Definition
      value_typeT

      [edit]Member functions

      constructs the optional object
      (public member function)[edit]
      destroys the contained value, if there is one
      (public member function)[edit]
      assigns contents
      (public member function)[edit]
      Observers
      accesses the contained value
      (public member function)[edit]
      checks whether the object contains a value
      (public member function)[edit]
      returns the contained value
      (public member function)[edit]
      returns the contained value if available, another value otherwise
      (public member function)[edit]
      Modifiers
      exchanges the contents
      (public member function)[edit]
      constructs the contained value in-place
      (public member function)[edit]

      [edit]Member objects

      Member name Definition
      val(private) pointer to the contained value (which points at a data member of the same object), the name is for exposition only

      [edit]Non-member functions

      comparesoptional objects
      (function template)[edit]
      creates anoptional object
      (function template)[edit]
      specializes thestd::swap algorithm
      (function)[edit]

      [edit]Helper classes

      specializes thestd::hash algorithm
      (class template specialization)[edit]
      (library fundamentals TS)
      indicator of optional type with uninitialized state
      (class)[edit]
      (library fundamentals TS)
      disambiguation tag type for in-place construction of optional types
      (class)[edit]
      (library fundamentals TS)
      exception indicating checked access to an optional that doesn't contain a value
      (class)[edit]

      [edit]Helper objects

      (library fundamentals TS)
      an object of typenullopt_t
      (function)[edit]
      (library fundamentals TS)
      an object of typestd::experimental::in_place_t
      (function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/experimental/optional&oldid=164198"

      [8]ページ先頭

      ©2009-2025 Movatter.jp