-
-
Notifications
You must be signed in to change notification settings - Fork 7.1k
Closed
Labels
kind: bugrelease item: 🐛 bug fixsolution: proposed fixa fix for the issue has been proposed and waits for confirmationa fix for the issue has been proposed and waits for confirmation
Milestone
Description
What is the issue you have?
Compilation fails using GCC 7.5.0 (default GCC compiler version in ubuntu 18.04) for a target which has --std=c++17 compiler option.
Please describe the steps to reproduce the issue.
GCC 7.5.0 declares: __cplusplus = 201703L, thus JSON_HAS_CPP_17 flag is set but in fact GCCv7 implements <experimental/filesystem>
https://stackoverflow.com/questions/45867379/why-does-gcc-not-seem-to-have-the-filesystem-standard-library
Can you provide a small but working code example?
See diff (to test project's CMakeLists.txt) at the end of bug report.
What is the expected behavior?
Compilation of json.hpp should work with GCCv7 with --std=c++17 compiler option.
And what is the actual behavior instead?
Compilation using GCCv7 outputs errors:
json-src/single_include/nlohmann/json.hpp:3954:14: fatal error: filesystem: No such file or directory
#include <filesystem>
json-src/single_include/nlohmann/json.hpp:4384:45: error: ‘std::filesystem’ has not been declared
void from_json(const BasicJsonType& j, std::filesystem::path& p)
Which compiler and operating system are you using?
- Compiler: GCC v7.5.0
- Operating system: Ubuntu 18.04
Which version of the library did you use?
- latest release version 3.10.4
- other release - please state the version: ___
- the
develop
branch
If you experience a compilation error: can you compile and run the unit tests?
- yes
- no - please copy/paste the error message below
Compilation fails, if I make following change:
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 447192c..c63ef61 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -60,6 +60,7 @@ foreach(file ${files})
add_executable(${testcase} $<TARGET_OBJECTS:doctest_main> ${file})
target_compile_definitions(${testcase} PRIVATE DOCTEST_CONFIG_SUPER_FAST_ASSERTS)
+ set_property(TARGET ${testcase} PROPERTY CXX_STANDARD 17)
target_compile_options(${testcase} PRIVATE
$<$<CXX_COMPILER_ID:MSVC>:/EHsc;$<$<CONFIG:Release>:/Od>>
$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:-Wno-deprecated;-Wno-float-equal>
Metadata
Metadata
Assignees
Labels
kind: bugrelease item: 🐛 bug fixsolution: proposed fixa fix for the issue has been proposed and waits for confirmationa fix for the issue has been proposed and waits for confirmation