// instead {}
optional() {};
optional(const optional&) = default;
- explicit optional(T &&value) noexcept;
- explicit optional(const T &value) noexcept;
- optional(optional &&) noexcept;
+ explicit optional(T&&) noexcept;
+ explicit optional(const T&) noexcept;
+ optional(optional&&) noexcept;
// TODO: optional(nullopt_t) noexcept;
// TODO: optional(const optional<U> &)
// TODO: optional(optional<U> &&)
// TODO: optional(U&& value);
// Assignment
- optional& operator=(const optional& rhs) = default;
- optional& operator=(optional&& rhs);
+ optional& operator=(const optional&) = default;
+ optional& operator=(optional&&);
// Observers
T* operator-> ();