diff options
author | Michael Hirsch <scivision@users.noreply.github.com> | 2020-12-15 14:30:12 -0500 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2021-01-04 23:43:30 +0000 |
commit | bad0e95caec4cf49165572df3cf2edc4832280fa (patch) | |
tree | 1638a2b03b857c95f1361a0d9dc6274247f988bd /test cases | |
parent | d47a5c81a9af992eca42d857477f2bb5821712b6 (diff) | |
download | meson-bad0e95caec4cf49165572df3cf2edc4832280fa.zip meson-bad0e95caec4cf49165572df3cf2edc4832280fa.tar.gz meson-bad0e95caec4cf49165572df3cf2edc4832280fa.tar.bz2 |
unit:cpp17: make C++17 test stricter check
many compilers allowed "nodiscard" C++17 feature with pre-c++17 flags.
The C++17 filesystem typically actually does require -std=c++17.
This makes this unit test more representative of C++17 flag support.
Diffstat (limited to 'test cases')
-rw-r--r-- | test cases/unit/45 vscpp17/main.cpp | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/test cases/unit/45 vscpp17/main.cpp b/test cases/unit/45 vscpp17/main.cpp index bfe2470..3d07d4c 100644 --- a/test cases/unit/45 vscpp17/main.cpp +++ b/test cases/unit/45 vscpp17/main.cpp @@ -1,7 +1,29 @@ -[[nodiscard]] int foo(void) { - return 0; -} +#include <iostream> + +#if __cpp_lib_filesystem || (defined(__cplusplus) && __cplusplus >= 201703L) +#include <filesystem> +#endif + +int main(){ + +#if __cpp_lib_filesystem || (defined(__cplusplus) && __cplusplus >= 201703L) +char fs = std::filesystem::path::preferred_separator; +std::cout << "OK: C++17 filesystem enabled" << std::endl; +#endif -int main(void) { - return foo(); +#if defined(_MSC_VER) +#if _HAS_CXX17 +std::cout << "OK: MSVC has C++17 enabled" << std::endl; +return EXIT_SUCCESS; +#else +std::cerr << "ERROR: MSVC does not have C++17 enabled" << std::endl; +return EXIT_FAILURE; +#endif +#elif defined(__cplusplus) && __cplusplus >= 201703L +std::cout << "OK: C++17 enabled" << std::endl; +return EXIT_SUCCESS; +#else +std::cerr << "ERROR: C++17 not enabled" << std::endl; +return EXIT_FAILURE; +#endif } |