Skip to content
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
bin/
bin64/
build/

# Because of CMake and VS2017
Win32/
x64/
.vs/
out/
out/

# VS CMake settings
/CMakeSettings.json
# CMake presets
/CMakePresets.json
/CMakeUserPresets.json
17 changes: 17 additions & 0 deletions include/boost/static_string/config.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -279,4 +279,21 @@ using basic_string_view =
#define BOOST_STATIC_STRING_USE_STD_FORMAT
#endif

#if defined(__GNUC__) && (__GNUC__ >= 5) && (__GNUC__ <= 10) && !defined(__clang__)
// Workaround for GCC complaining about nested classes being private.
#define BOOST_STATIC_STRING_GCC_NESTED_CLASS_WORKAROUND public:
#else
#define BOOST_STATIC_STRING_GCC_NESTED_CLASS_WORKAROUND
#endif

// GCC 9 incorrectly rejects the pointer equality comparison in
// ptr_in_range() in constant expressions. GCC 10 and later handle
// it correctly.
//
// Clang 3.7 and 9-19 have the same issue.
#if (defined(__GNUC__) && !defined(__clang__) && (__GNUC__ == 9)) \
|| (defined(__clang__) && ((__clang_major__ == 3 && __clang_minor__ == 7) || ((__clang_major__ >= 9) && (__clang_major__ <= 19))))
#define BOOST_STATIC_STRING_CONSTEXPR_PTR_CMP_BROKEN
#endif

#endif
Loading