aboutsummaryrefslogtreecommitdiff
path: root/test cases
diff options
context:
space:
mode:
authorMichael Hirsch <scivision@users.noreply.github.com>2020-12-15 14:30:12 -0500
committerJussi Pakkanen <jpakkane@gmail.com>2021-01-04 23:43:30 +0000
commitbad0e95caec4cf49165572df3cf2edc4832280fa (patch)
tree1638a2b03b857c95f1361a0d9dc6274247f988bd /test cases
parentd47a5c81a9af992eca42d857477f2bb5821712b6 (diff)
downloadmeson-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.cpp32
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
}