Lines Matching refs:E
53 template<class T, class E>
56 template<class E>
58 template<class E>
59 unexpected(E) -> unexpected<E>;
61 template<class E>
85 template<class T, class E>
89 using error_type = E;
90 using unexpected_type = unexpected<E>;
102 std::is_constructible_v<E, const G&> &&
112 !std::is_convertible_v<const G&, E>) /* non-explicit */
122 std::is_constructible_v<E, const G&> &&
132 !std::is_convertible_v<const G&, E>) /* explicit */
141 std::is_constructible_v<E, const G&> &&
151 !std::is_convertible_v<const G&, E>) /* non-explicit */
161 std::is_constructible_v<E, const G&> &&
171 !std::is_convertible_v<const G&, E>) /* explicit */
181 !std::is_same_v<expected<T, E>, std::remove_cv_t<std::remove_reference_t<U>>> &&
182 !std::is_same_v<unexpected<E>, std::remove_cv_t<std::remove_reference_t<U>>> &&
191 !std::is_same_v<expected<T, E>, std::remove_cv_t<std::remove_reference_t<U>>> &&
192 !std::is_same_v<unexpected<E>, std::remove_cv_t<std::remove_reference_t<U>>> &&
198 template<class G = E _ENABLE_IF(
199 std::is_constructible_v<E, const G&> &&
200 std::is_convertible_v<const G&, E> /* non-explicit */
206 template<class G = E _ENABLE_IF(
207 std::is_constructible_v<E, const G&> &&
208 !std::is_convertible_v<const G&, E> /* explicit */
211 : var_(std::in_place_index<1>, E(e.value())) {} in expected()
213 template<class G = E _ENABLE_IF(
214 std::is_constructible_v<E, G&&> &&
215 std::is_convertible_v<G&&, E> /* non-explicit */
221 template<class G = E _ENABLE_IF(
222 std::is_constructible_v<E, G&&> &&
223 !std::is_convertible_v<G&&, E> /* explicit */
226 : var_(std::in_place_index<1>, E(std::move(e.value()))) {} in expected()
241 std::is_constructible_v<E, Args...>
247 std::is_constructible_v<E, std::initializer_list<U>&, Args...>
266 std::is_nothrow_move_assignable_v<T>&& std::is_nothrow_move_assignable_v<E>) = default;
270 !std::is_same_v<expected<T, E>, std::remove_cv_t<std::remove_reference_t<U>>> &&
273 std::is_nothrow_move_constructible_v<E>)>
279 template<class G = E>
285 template<class G = E _ENABLE_IF(
314 std::is_swappable_v<E> &&
316 std::is_move_constructible_v<E>))>>
320 std::is_nothrow_move_constructible_v<E> && in swap()
321 std::is_nothrow_swappable_v<E>) { in swap()
341 constexpr const E& error() const& { return std::get<unexpected_type>(var_).value(); } in error()
342 constexpr E& error() & { return std::get<unexpected_type>(var_).value(); } in error()
343 constexpr const E&& error() const&& { return std::move(std::get<unexpected_type>(var_)).value(); } in error()
344 constexpr E&& error() && { return std::move(std::get<unexpected_type>(var_)).value(); } in error()
423 template<class E>
424 class _NODISCARD_ expected<void, E> {
427 using error_type = E;
428 using unexpected_type = unexpected<E>;
437 std::is_convertible_v<const G&, E> /* non-explicit */
446 !std::is_convertible_v<const G&, E> /* explicit */
454 std::is_convertible_v<const G&&, E> /* non-explicit */
463 !std::is_convertible_v<const G&&, E> /* explicit */
469 template<class G = E _ENABLE_IF(
470 std::is_constructible_v<E, const G&> &&
471 std::is_convertible_v<const G&, E> /* non-explicit */
477 template<class G = E _ENABLE_IF(
478 std::is_constructible_v<E, const G&> &&
479 !std::is_convertible_v<const G&, E> /* explicit */
482 : var_(std::in_place_index<1>, E(e.value())) {} in expected()
484 template<class G = E _ENABLE_IF(
485 std::is_constructible_v<E, G&&> &&
486 std::is_convertible_v<G&&, E> /* non-explicit */
492 template<class G = E _ENABLE_IF(
493 std::is_constructible_v<E, G&&> &&
494 !std::is_convertible_v<G&&, E> /* explicit */
497 : var_(std::in_place_index<1>, E(std::move(e.value()))) {} in expected()
505 std::is_constructible_v<E, Args...>
511 std::is_constructible_v<E, std::initializer_list<U>&, Args...>
529 expected& operator=(expected&& rhs) noexcept(std::is_nothrow_move_assignable_v<E>) = default;
531 template<class G = E>
537 template<class G = E _ENABLE_IF(
553 std::is_swappable_v<E>>
555 void swap(expected& rhs) noexcept(std::is_nothrow_move_constructible_v<E>) { in swap()
565 constexpr const E& error() const& { return std::get<unexpected_type>(var_).value(); } in error()
566 constexpr E& error() & { return std::get<unexpected_type>(var_).value(); } in error()
567 constexpr const E&& error() const&& { return std::move(std::get<unexpected_type>(var_)).value(); } in error()
568 constexpr E&& error() && { return std::move(std::get<unexpected_type>(var_)).value(); } in error()
603 template<class E>
608 constexpr unexpected(unexpected&&) noexcept(std::is_nothrow_move_constructible_v<E>) = default;
610 template <class Err = E _ENABLE_IF(
611 std::is_constructible_v<E, Err> &&
612 !std::is_same_v<std::remove_cv_t<std::remove_reference_t<E>>, std::in_place_t> &&
613 !std::is_same_v<std::remove_cv_t<std::remove_reference_t<E>>, unexpected>)>
618 std::is_constructible_v<E, std::initializer_list<U>&, Args...>
624 std::is_constructible_v<E, Err> &&
625 !std::is_constructible_v<E, unexpected<Err>&> &&
626 !std::is_constructible_v<E, unexpected<Err>> &&
627 !std::is_constructible_v<E, const unexpected<Err>&> &&
628 !std::is_constructible_v<E, const unexpected<Err>> &&
629 !std::is_convertible_v<unexpected<Err>&, E> &&
630 !std::is_convertible_v<unexpected<Err>, E> &&
631 !std::is_convertible_v<const unexpected<Err>&, E> &&
632 !std::is_convertible_v<const unexpected<Err>, E> &&
633 std::is_convertible_v<Err, E> /* non-explicit */
640 std::is_constructible_v<E, Err> &&
641 !std::is_constructible_v<E, unexpected<Err>&> &&
642 !std::is_constructible_v<E, unexpected<Err>> &&
643 !std::is_constructible_v<E, const unexpected<Err>&> &&
644 !std::is_constructible_v<E, const unexpected<Err>> &&
645 !std::is_convertible_v<unexpected<Err>&, E> &&
646 !std::is_convertible_v<unexpected<Err>, E> &&
647 !std::is_convertible_v<const unexpected<Err>&, E> &&
648 !std::is_convertible_v<const unexpected<Err>, E> &&
649 !std::is_convertible_v<Err, E> /* explicit */
652 : val_(E(rhs.value())) {} in unexpected()
655 std::is_constructible_v<E, Err> &&
656 !std::is_constructible_v<E, unexpected<Err>&> &&
657 !std::is_constructible_v<E, unexpected<Err>> &&
658 !std::is_constructible_v<E, const unexpected<Err>&> &&
659 !std::is_constructible_v<E, const unexpected<Err>> &&
660 !std::is_convertible_v<unexpected<Err>&, E> &&
661 !std::is_convertible_v<unexpected<Err>, E> &&
662 !std::is_convertible_v<const unexpected<Err>&, E> &&
663 !std::is_convertible_v<const unexpected<Err>, E> &&
664 std::is_convertible_v<Err, E> /* non-explicit */
671 std::is_constructible_v<E, Err> &&
672 !std::is_constructible_v<E, unexpected<Err>&> &&
673 !std::is_constructible_v<E, unexpected<Err>> &&
674 !std::is_constructible_v<E, const unexpected<Err>&> &&
675 !std::is_constructible_v<E, const unexpected<Err>> &&
676 !std::is_convertible_v<unexpected<Err>&, E> &&
677 !std::is_convertible_v<unexpected<Err>, E> &&
678 !std::is_convertible_v<const unexpected<Err>&, E> &&
679 !std::is_convertible_v<const unexpected<Err>, E> &&
680 !std::is_convertible_v<Err, E> /* explicit */
683 : val_(E(std::move(rhs.value()))) {} in unexpected()
687 constexpr unexpected& operator=(unexpected&&) noexcept(std::is_nothrow_move_assignable_v<E>) =
689 template<class Err = E>
694 template<class Err = E>
696 val_ = std::forward<E>(rhs.value());
701 constexpr const E& value() const& noexcept { return val_; } in value()
702 constexpr E& value() & noexcept { return val_; } in value()
703 constexpr const E&& value() const&& noexcept { return std::move(val_); } in value()
704 constexpr E&& value() && noexcept { return std::move(val_); } in value()
706 void swap(unexpected& other) noexcept(std::is_nothrow_swappable_v<E>) { in swap()
721 E val_;