@@ -115,7 +115,7 @@ inline constexpr bool is_error_type_valid_v = is_error_type_valid<T>::value;
115115} // namespace expected_detail
116116
117117template <class E >
118- class ICEBERG_EXPORT unexpected {
118+ class ICEBERG_EXPORT [[nodiscard]] unexpected {
119119 public:
120120 static_assert (expected_detail::is_error_type_valid_v<E>);
121121
@@ -999,8 +999,9 @@ struct default_ctor_base<T, E, false> {
999999// / tracked by the expected object.
10001000
10011001template <class T , class E >
1002- class ICEBERG_EXPORT expected : private expected_detail::move_assign_base<T, E>,
1003- private expected_detail::default_ctor_base<T, E> {
1002+ class ICEBERG_EXPORT [[nodiscard]] expected
1003+ : private expected_detail::move_assign_base<T, E>,
1004+ private expected_detail::default_ctor_base<T, E> {
10041005 static_assert (expected_detail::is_value_type_valid_v<T>);
10051006 static_assert (expected_detail::is_error_type_valid_v<E>);
10061007
@@ -1781,7 +1782,7 @@ constexpr void swap(expected<T, E>& lhs,
17811782}
17821783
17831784template <class E >
1784- class ICEBERG_EXPORT expected<void , E>
1785+ class ICEBERG_EXPORT [[nodiscard]] expected<void , E>
17851786 : private expected_detail::move_assign_base<void , E>,
17861787 private expected_detail::default_ctor_base<void , E> {
17871788 static_assert (expected_detail::is_error_type_valid_v<E>);
0 commit comments