Lines Matching refs:E

55   template <typename T, typename E, bool DefineDestructor>
60 template <typename T, typename E>
61 struct expected_data<T, E, /*DefineDestructor*/true> {
84 constexpr const E& error() const {
88 constexpr E& error() {
95 E error_;
110 error_.~E();
117 noexcept(E(std::move(other.error_)))
124 new (&error_) E(std::move(other.error_));
136 new (&error_) E(other.error_);
151 error_.~E();
159 new (&error_) E(other.error_);
179 error_.~E();
187 new (&error_) E(std::move(other.error_));
209 template <typename T, typename E>
210 struct expected_data<T, E, /*DefineDestructor*/false> {
231 constexpr const E& error() const {
235 constexpr E& error() {
242 E error_;
252 template <typename T, typename E>
254 expected_data<T, E,
255 !(std::is_trivially_destructible_v<T> && std::is_trivially_destructible_v<E>) >;
258 template <typename E>
262 template <typename T, typename E>
270 constexpr expected(const E& error) : data_{error, detail::expected_tag_error{}} {}
271 constexpr expected(E&& error) : data_{std::move(error), detail::expected_tag_error{}} {}
273 template <typename G = E>
276 template <typename G = E>
317 constexpr E& error() {
322 constexpr const E& error() const {
329 detail::expected_pick_data_t<T, E> data_;
351 template <typename E>
354 constexpr explicit unexpected(const E& error) : error_{error} {}
355 constexpr explicit unexpected(E&& error) : error_{std::move(error)} {}
356 constexpr const E& value() const& { return error_; }
357 constexpr E& value() & { return error_; }
358 constexpr E&& value() && { return std::move(error_); }
359 constexpr E const&& value() const&& { return std::move(error_); }
361 E error_;
364 template <class E>
365 constexpr bool operator==(const unexpected<E>& x, const unexpected<E>& y) {
369 template <class E>
370 constexpr bool operator!=(const unexpected<E>& x, const unexpected<E>& y) {