default_dialect.cpp 638 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. template <long l>
  2. struct Outputter;
  3. #if defined(_MSC_VER) && defined(_MSVC_LANG)
  4. #define CXX_STD _MSVC_LANG
  5. #else
  6. #define CXX_STD __cplusplus
  7. #endif
  8. #if DEFAULT_CXX20
  9. #if CXX_STD <= 201703L
  10. Outputter<CXX_STD> o;
  11. #endif
  12. #elif DEFAULT_CXX17
  13. #if CXX_STD <= 201402L
  14. Outputter<CXX_STD> o;
  15. #endif
  16. #elif DEFAULT_CXX14
  17. #if CXX_STD != 201402L
  18. Outputter<CXX_STD> o;
  19. #endif
  20. #elif DEFAULT_CXX11
  21. #if CXX_STD != 201103L
  22. Outputter<CXX_STD> o;
  23. #endif
  24. #else
  25. #if !DEFAULT_CXX98
  26. #error Buildsystem error
  27. #endif
  28. #if CXX_STD != 199711L && CXX_STD != 1 && !defined(__GXX_EXPERIMENTAL_CXX0X__)
  29. Outputter<CXX_STD> o;
  30. #endif
  31. #endif
  32. int main()
  33. {
  34. return 0;
  35. }