Fix more constexpr

This commit is contained in:
Krystian Stasiowski
2020-02-02 11:43:17 -05:00
parent 00d6d174fb
commit 497c84b5a1
2 changed files with 22 additions and 13 deletions

View File

@ -35,12 +35,10 @@
// Can we use is_constant_evaluated?
// Standard version
#if __cpp_lib_is_constant_evaluated >= 201811L
#define BOOST_STATIC_STRING_USE_IS_CONST_EVAL
#define BOOST_STATIC_STRING_IS_CONST_EVAL std::is_constant_evaluated()
#elif defined(__clang__) && (__clang_major__ > 8)
#elif defined(__clang__) && __has_builtin(__builtin_is_constant_evaluated)
// If we have clang version 9+, we can use the intrinsic
// While gcc also has this, we don't need it
#define BOOST_STATIC_STRING_USE_IS_CONST_EVAL
#define BOOST_STATIC_STRING_IS_CONST_EVAL __builtin_is_constant_evaluated()
#endif
@ -158,12 +156,13 @@ defined(__clang__) && \
#define BOOST_STATIC_STRING_CPP14_CONSTEXPR
#endif
// These are for compiler/library configurations
// This is for compiler/library configurations
// that cannot use the library comparison function
// objects at all in constant expresssions. In these
// cases, we use whatever will make more constexpr work.
#if defined(__clang__) && defined(__GLIBCXX__) && \
((__GLIBCXX__ > 20181206) && (__GLIBCXX__ < 20190812))
#if defined(__clang__) && defined(__GLIBCXX__) && ((__GLIBCXX__ > 20181206 && __GLIBCXX__ <= 20190812))
#define BOOST_STATIC_STRING_NO_PTR_COMP_FUNCTIONS
#elif __has_builtin(__builtin_constant_p) || defined(BOOST_STATIC_STRING_IS_CONST_EVAL)
#define BOOST_STATIC_STRING_NO_PTR_COMP_FUNCTIONS
#endif