std::experimental::optional<T>::optional
From cppreference.com
constexpr optional() noexcept;
constexpr optional( std::experimental::nullopt_t ) noexcept;
|
(1) | (library fundamentals TS) |
optional( const optional& other );
|
(2) | (library fundamentals TS) |
optional( optional&& other ) noexcept(/* see below */);
|
(3) | (library fundamentals TS) |
constexpr optional( const T& value );
|
(4) | (library fundamentals TS) |
constexpr optional( T&& value );
|
(5) | (library fundamentals TS) |
template< class... Args >
constexpr explicit optional( std::experimental::in_place_t, Args&&... args );
|
(6) | (library fundamentals TS) |
template< class U, class... Args >
constexpr explicit optional( std::experimental::in_place_t,
std::initializer_list<U> ilist,
Args&&... args );
|
(7) | (library fundamentals TS) |
Constructs a new optional object.
1) Constructs the object that does not contain a value.
2) Copy constructor: If
other contains a value, initializes the contained value as if direct-initializing (but not direct-list-initializing) an object of type T with the expression *other. If other does not contain a value, constructs an object that does not contain a value.3) Move constructor: If
other contains a value, initializes the contained value as if direct-initializing (but not direct-list-initializing) an object of type T with the expression std::move(*other) and does not make other empty: a moved-from optional still contains a value, but the value itself is moved from. If other does not contain a value, constructs an object that does not contain a value.4) Constructs an optional object that contains a value, initialized as if direct-initializing (but not direct-list-initializing) an object of type
T with the expression value. This constructor is constexpr if the constructor of T selected by direct-initialization is constexpr.5) Constructs an optional object that contains a value, initialized as if direct-initializing (but not direct-list-initializing) an object of type
T with the expression std::move(value). This constructor is constexpr if the constructor of T selected by direct-initialization is constexpr.6) Constructs an optional object that contains a value, initialized as if direct-initializing (but not direct-list-initializing) an object of type
T from the arguments std::forward<Args>(args)....7) Constructs an optional object that contains a value, initialized as if direct-initializing (but not direct-list-initializing) an object of type
T from the arguments ilist, std::forward<Args>(args).... The function does not participate in the overload resolution if std::is_constructible<T, std