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()
342 constexpr const E& error() const& { return std::get<unexpected_type>(var_).value(); } in error()
343 constexpr E& error() & { return std::get<unexpected_type>(var_).value(); } in error()
344 constexpr const E&& error() const&& { return std::move(std::get<unexpected_type>(var_)).value(); } in error()
345 constexpr E&& error() && { return std::move(std::get<unexpected_type>(var_)).value(); } in error()
419 template<class E>
420 class _NODISCARD_ expected<void, E> {
423 using error_type = E;
424 using unexpected_type = unexpected<E>;
433 std::is_convertible_v<const G&, E> /* non-explicit */
442 !std::is_convertible_v<const G&, E> /* explicit */
450 std::is_convertible_v<const G&&, E> /* non-explicit */
459 !std::is_convertible_v<const G&&, E> /* explicit */
465 template<class G = E _ENABLE_IF(
466 std::is_constructible_v<E, const G&> &&
467 std::is_convertible_v<const G&, E> /* non-explicit */
473 template<class G = E _ENABLE_IF(
474 std::is_constructible_v<E, const G&> &&
475 !std::is_convertible_v<const G&, E> /* explicit */
478 : var_(std::in_place_index<1>, E(e.value())) {} in expected()
480 template<class G = E _ENABLE_IF(
481 std::is_constructible_v<E, G&&> &&
482 std::is_convertible_v<G&&, E> /* non-explicit */
488 template<class G = E _ENABLE_IF(
489 std::is_constructible_v<E, G&&> &&
490 !std::is_convertible_v<G&&, E> /* explicit */
493 : var_(std::in_place_index<1>, E(std::move(e.value()))) {} in expected()
501 std::is_constructible_v<E, Args...>
507 std::is_constructible_v<E, std::initializer_list<U>&, Args...>
525 expected& operator=(expected&& rhs) noexcept(std::is_nothrow_move_assignable_v<E>) = default;
527 template<class G = E>
533 template<class G = E _ENABLE_IF(
549 std::is_swappable_v<E>>
551 void swap(expected& rhs) noexcept(std::is_nothrow_move_constructible_v<E>) { in swap()
562 constexpr const E& error() const& { return std::get<unexpected_type>(var_).value(); } in error()
563 constexpr E& error() & { return std::get<unexpected_type>(var_).value(); } in error()
564 constexpr const E&& error() const&& { return std::move(std::get<unexpected_type>(var_)).value(); } in error()
565 constexpr E&& error() && { return std::move(std::get<unexpected_type>(var_)).value(); } in error()
600 template<class E>
605 constexpr unexpected(unexpected&&) noexcept(std::is_nothrow_move_constructible_v<E>) = default;
607 template <class Err = E _ENABLE_IF(
608 std::is_constructible_v<E, Err> &&
609 !std::is_same_v<std::remove_cv_t<std::remove_reference_t<E>>, std::in_place_t> &&
610 !std::is_same_v<std::remove_cv_t<std::remove_reference_t<E>>, unexpected>)>
615 std::is_constructible_v<E, std::initializer_list<U>&, Args...>
621 std::is_constructible_v<E, Err> &&
622 !std::is_constructible_v<E, unexpected<Err>&> &&
623 !std::is_constructible_v<E, unexpected<Err>> &&
624 !std::is_constructible_v<E, const unexpected<Err>&> &&
625 !std::is_constructible_v<E, const unexpected<Err>> &&
626 !std::is_convertible_v<unexpected<Err>&, E> &&
627 !std::is_convertible_v<unexpected<Err>, E> &&
628 !std::is_convertible_v<const unexpected<Err>&, E> &&
629 !std::is_convertible_v<const unexpected<Err>, E> &&
630 std::is_convertible_v<Err, E> /* non-explicit */
637 std::is_constructible_v<E, Err> &&
638 !std::is_constructible_v<E, unexpected<Err>&> &&
639 !std::is_constructible_v<E, unexpected<Err>> &&
640 !std::is_constructible_v<E, const unexpected<Err>&> &&
641 !std::is_constructible_v<E, const unexpected<Err>> &&
642 !std::is_convertible_v<unexpected<Err>&, E> &&
643 !std::is_convertible_v<unexpected<Err>, E> &&
644 !std::is_convertible_v<const unexpected<Err>&, E> &&
645 !std::is_convertible_v<const unexpected<Err>, E> &&
646 !std::is_convertible_v<Err, E> /* explicit */
649 : val_(E(rhs.value())) {} in unexpected()
652 std::is_constructible_v<E, Err> &&
653 !std::is_constructible_v<E, unexpected<Err>&> &&
654 !std::is_constructible_v<E, unexpected<Err>> &&
655 !std::is_constructible_v<E, const unexpected<Err>&> &&
656 !std::is_constructible_v<E, const unexpected<Err>> &&
657 !std::is_convertible_v<unexpected<Err>&, E> &&
658 !std::is_convertible_v<unexpected<Err>, E> &&
659 !std::is_convertible_v<const unexpected<Err>&, E> &&
660 !std::is_convertible_v<const unexpected<Err>, E> &&
661 std::is_convertible_v<Err, E> /* non-explicit */
668 std::is_constructible_v<E, Err> &&
669 !std::is_constructible_v<E, unexpected<Err>&> &&
670 !std::is_constructible_v<E, unexpected<Err>> &&
671 !std::is_constructible_v<E, const unexpected<Err>&> &&
672 !std::is_constructible_v<E, const unexpected<Err>> &&
673 !std::is_convertible_v<unexpected<Err>&, E> &&
674 !std::is_convertible_v<unexpected<Err>, E> &&
675 !std::is_convertible_v<const unexpected<Err>&, E> &&
676 !std::is_convertible_v<const unexpected<Err>, E> &&
677 !std::is_convertible_v<Err, E> /* explicit */
680 : val_(E(std::move(rhs.value()))) {} in unexpected()
684 constexpr unexpected& operator=(unexpected&&) noexcept(std::is_nothrow_move_assignable_v<E>) =
686 template<class Err = E>
691 template<class Err = E>
693 val_ = std::forward<E>(rhs.value());
698 constexpr const E& value() const& noexcept { return val_; } in value()
699 constexpr E& value() & noexcept { return val_; } in value()
700 constexpr const E&& value() const&& noexcept { return std::move(val_); } in value()
701 constexpr E&& value() && noexcept { return std::move(val_); } in value()
703 void swap(unexpected& other) noexcept(std::is_nothrow_swappable_v<E>) { in swap()
718 E val_;