From bad0e95caec4cf49165572df3cf2edc4832280fa Mon Sep 17 00:00:00 2001 From: Michael Hirsch Date: Tue, 15 Dec 2020 14:30:12 -0500 Subject: 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. --- test cases/unit/45 vscpp17/main.cpp | 32 +++++++++++++++++++++++++++----- 1 file 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 + +#if __cpp_lib_filesystem || (defined(__cplusplus) && __cplusplus >= 201703L) +#include +#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 } -- cgit v1.1