Extend FMT_FALLTHROUGH compatibily to gcc and clang pre-C++17

This commit is contained in:
federico-busato 2019-12-09 17:50:56 +01:00
parent fd52de0c6b
commit e5c8a69863

View File

@ -69,9 +69,17 @@
# define FMT_HAS_BUILTIN(x) 0 # define FMT_HAS_BUILTIN(x) 0
#endif #endif
#if FMT_HAS_CPP_ATTRIBUTE(fallthrough) && \ #if __cplusplus == 201103L || __cplusplus == 201402L
(__cplusplus >= 201703 || FMT_GCC_VERSION != 0) # if defined(__clang__)
# define FMT_FALLTHROUGH [[fallthrough]] # define FMT_FALLTHROUGH [[clang::fallthrough]];
# elif defined(__GNUC__) && __GNUC__ >= 7
# define FMT_FALLTHROUGH [[gnu::fallthrough]];
# else
# define FMT_FALLTHROUGH
# endif
#elif FMT_HAS_CPP_ATTRIBUTE(fallthrough) && \
((__cplusplus >= 201703) || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L))
# define FMT_FALLTHROUGH [[fallthrough]];
#else #else
# define FMT_FALLTHROUGH # define FMT_FALLTHROUGH
#endif #endif