operator=(optional &&rhs) noexcept(is_nothrow_move_assignable< T >::value &&is_nothrow_move_constructible< T >::value) (defined in std::experimental::optional< T >)
operator=(U &&v) -> typename enable_if< is_same< typename decay< U >::type, T >::value, optional & >::type (defined in std::experimental::optional< T >)
swap(optional< T > &rhs) noexcept(is_nothrow_move_constructible< T >::value &&noexcept(swap(declval< T & >(), declval< T & >()))) (defined in std::experimental::optional< T >)