Skip to content

Commit c8a0430

Browse files
committed
Conditionally nodiscard
1 parent 5bcd35b commit c8a0430

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

include/tl/expected.hpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,14 @@ struct is_trivially_copy_constructible<std::vector<T, A>> : std::false_type {};
132132
#define TL_EXPECTED_11_CONSTEXPR constexpr
133133
#endif
134134

135+
#if TL_CPLUSPLUS >= 201703L
136+
#define TL_EXPECTED_NODISCARD [[nodiscard]]
137+
#else
138+
#define TL_EXPECTED_NODISCARD
139+
#endif
140+
135141
namespace tl {
136-
template <class T, class E> class [[nodiscard]] expected;
142+
template <class T, class E> class TL_EXPECTED_NODISCARD expected;
137143

138144
#ifndef TL_MONOSTATE_INPLACE_MUTEX
139145
#define TL_MONOSTATE_INPLACE_MUTEX
@@ -1276,7 +1282,7 @@ template <class E> class bad_expected_access : public std::exception {
12761282
/// has been destroyed. The initialization state of the contained object is
12771283
/// tracked by the expected object.
12781284
template <class T, class E>
1279-
class [[nodiscard]] expected :
1285+
class TL_EXPECTED_NODISCARD expected :
12801286
private detail::expected_move_assign_base<T, E>,
12811287
private detail::expected_delete_ctor_base<T, E>,
12821288
private detail::expected_delete_assign_base<T, E>,

0 commit comments

Comments
 (0)