cpp/experimental/optional/optional

Constructs a new object.

@1@ Constructs the object that does not contain a value. @2@ Copy constructor: If contains a value, initializes the contained value as if direct-initializing (but not direct-list-initializing) an object of type  with the expression. If does not contain a value, constructs an object that does not contain a value. @3@ Move constructor: If contains a value, initializes the contained value as if direct-initializing (but not direct-list-initializing) an object of type  with the expression  and does not make  empty: a moved-from optional still contains a value, but the value itself is moved from. If 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 with the expression. This constructor is if the constructor of  selected by direct-initialization is. @5@ Constructs an optional object that contains a value, initialized as if direct-initializing (but not direct-list-initializing) an object of type with the expression. This constructor is if the constructor of  selected by direct-initialization is. @6@ Constructs an optional object that contains a value, initialized as if direct-initializing (but not direct-list-initializing) an object of type from the arguments @7@ Constructs an optional object that contains a value, initialized as if direct-initializing (but not direct-list-initializing) an object of type from the arguments. The function does not participate in the overload resolution if

Exceptions
@2@ Throws any exception thrown by the constructor of.

@3@ Throws any exception thrown by the constructor of. Has the following declaration:.

@4-7@ Throws any exception thrown by the constructor of.