default_dialect.cpp 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. template <long l>
  2. struct Outputter;
  3. #if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L
  4. # if defined(__INTEL_CXX11_MODE__)
  5. # if defined(__cpp_aggregate_nsdmi)
  6. # define CXX_STD 201402L
  7. # else
  8. # define CXX_STD 201103L
  9. # endif
  10. # else
  11. # define CXX_STD 199711L
  12. # endif
  13. #elif defined(_MSC_VER) && defined(_MSVC_LANG)
  14. # define CXX_STD _MSVC_LANG
  15. #else
  16. # define CXX_STD __cplusplus
  17. #endif
  18. #if DEFAULT_CXX23
  19. # if CXX_STD <= 202002L
  20. Outputter<CXX_STD> o;
  21. # endif
  22. #elif DEFAULT_CXX20
  23. # if CXX_STD <= 201703L
  24. Outputter<CXX_STD> o;
  25. # endif
  26. #elif DEFAULT_CXX17
  27. # if CXX_STD <= 201402L
  28. Outputter<CXX_STD> o;
  29. # endif
  30. #elif DEFAULT_CXX14
  31. # if CXX_STD != 201402L
  32. Outputter<CXX_STD> o;
  33. # endif
  34. #elif DEFAULT_CXX11
  35. # if CXX_STD != 201103L
  36. Outputter<CXX_STD> o;
  37. # endif
  38. #else
  39. # if !DEFAULT_CXX98
  40. # error Buildsystem error
  41. # endif
  42. # if CXX_STD != 199711L && CXX_STD != 1 && \
  43. !defined(__GXX_EXPERIMENTAL_CXX0X__)
  44. Outputter<CXX_STD> o;
  45. # endif
  46. #endif
  47. int main()
  48. {
  49. return 0;
  50. }