From 1369d77100fb3756d8d4094f210b7598280c4a70 Mon Sep 17 00:00:00 2001 From: Sy Brand Date: Wed, 15 Feb 2023 16:17:09 +0000 Subject: [PATCH] Update expected.hpp --- include/tl/expected.hpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/include/tl/expected.hpp b/include/tl/expected.hpp index ab0909c..8131516 100644 --- a/include/tl/expected.hpp +++ b/include/tl/expected.hpp @@ -25,15 +25,6 @@ #include #include -#if !defined(TL_ASSERT) -#if (__cplusplus > 201103L) //can't have assert in constexpr in C++11 -#include -#define TL_ASSERT(x) assert(x) -#else -#define TL_ASSERT(x) -#endif -#endif - #if defined(__EXCEPTIONS) || defined(_CPPUNWIND) #define TL_EXPECTED_EXCEPTIONS_ENABLED #endif @@ -60,6 +51,16 @@ #define TL_EXPECTED_GCC55 #endif +#if !defined(TL_ASSERT) +//can't have assert in constexpr in C++11 and GCC 4.9 has a compiler bug +#if (__cplusplus > 201103L) && !defined(TL_EXPECTED_GCC49) +#include +#define TL_ASSERT(x) assert(x) +#else +#define TL_ASSERT(x) +#endif +#endif + #if (defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ <= 9 && \ !defined(__clang__)) // GCC < 5 doesn't support overloading on const&& for member functions