default_dialect.cpp 990 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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_CXX20
  19. # if CXX_STD <= 201703L
  20. Outputter<CXX_STD> o;
  21. # endif
  22. #elif DEFAULT_CXX17
  23. # if CXX_STD <= 201402L
  24. Outputter<CXX_STD> o;
  25. # endif
  26. #elif DEFAULT_CXX14
  27. # if CXX_STD != 201402L
  28. Outputter<CXX_STD> o;
  29. # endif
  30. #elif DEFAULT_CXX11
  31. # if CXX_STD != 201103L
  32. Outputter<CXX_STD> o;
  33. # endif
  34. #else
  35. # if !DEFAULT_CXX98
  36. # error Buildsystem error
  37. # endif
  38. # if CXX_STD != 199711L && CXX_STD != 1 && \
  39. !defined(__GXX_EXPERIMENTAL_CXX0X__)
  40. Outputter<CXX_STD> o;
  41. # endif
  42. #endif
  43. int main()
  44. {
  45. return 0;
  46. }