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 >)