config.hpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #ifndef BOOST_DESCRIBE_DETAIL_CONFIG_HPP_INCLUDED
  2. #define BOOST_DESCRIBE_DETAIL_CONFIG_HPP_INCLUDED
  3. // Copyright 2021 Peter Dimov
  4. // Distributed under the Boost Software License, Version 1.0.
  5. // https://www.boost.org/LICENSE_1_0.txt
  6. #if __cplusplus >= 201402L
  7. # define BOOST_DESCRIBE_CXX14
  8. # define BOOST_DESCRIBE_CXX11
  9. #elif defined(_MSC_VER) && _MSC_VER >= 1900
  10. # define BOOST_DESCRIBE_CXX14
  11. # define BOOST_DESCRIBE_CXX11
  12. #elif __cplusplus >= 201103L
  13. # define BOOST_DESCRIBE_CXX11
  14. # if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ == 7
  15. # undef BOOST_DESCRIBE_CXX11
  16. # endif
  17. #endif
  18. #if defined(BOOST_DESCRIBE_CXX11)
  19. # define BOOST_DESCRIBE_CONSTEXPR_OR_CONST constexpr
  20. #else
  21. # define BOOST_DESCRIBE_CONSTEXPR_OR_CONST const
  22. #endif
  23. #if defined(__clang__)
  24. # define BOOST_DESCRIBE_MAYBE_UNUSED __attribute__((unused))
  25. #else
  26. # define BOOST_DESCRIBE_MAYBE_UNUSED
  27. #endif
  28. #if defined(__cpp_inline_variables) && __cpp_inline_variables >= 201606L
  29. # define BOOST_DESCRIBE_INLINE_VARIABLE inline
  30. #else
  31. # define BOOST_DESCRIBE_INLINE_VARIABLE
  32. #endif
  33. #define BOOST_DESCRIBE_INLINE_CONSTEXPR BOOST_DESCRIBE_INLINE_VARIABLE BOOST_DESCRIBE_CONSTEXPR_OR_CONST
  34. #endif // #ifndef BOOST_DESCRIBE_DETAIL_CONFIG_HPP_INCLUDED