rsvs3D  0.0.0
Codes for the c++ implementation of the 3D RSVS
filesystem.hpp
Go to the documentation of this file.
1 
8 // test for c++17 which has its own filesystem header
9 #if __cplusplus == 201703L
10 #if defined(__GNUC__) && (defined(__MINGW32__) || defined(__MINGW64__))
11 #if !(defined(USE_BOOST) || defined(USE_CSTD_FILESYSTEM))
12 #if (__GNUC__ == 8)
13 #error gcc v8.1 does not currently support <filesystem> header windows (BUG) use <boost/filesystem.hpp>. Alternatively force use of the header by adding flag "-DUSE_CSTD_FILESYSTEM" to your compile command.
14 #elif (__GNUC__ == 7)
15 #define USE_CSTD_FILESYSTEM_EXPERIMENTAL
16 #else
17 // Not even sure we can get there
18 #error gcc <= v6 does not support <filesystem> header: an addition of c++17. Please install and use boost <boost/filesystem.hpp>.
19 #endif
20 #endif
21 #else
22 #define USE_CSTD_FILESYSTEM
23 #endif
24 #endif
25 #ifdef USE_CSTD_FILESYSTEM
26 #include <filesystem>
27 #elif defined(USE_CSTD_FILESYSTEM_EXPERIMENTAL)
28 #include <experimental/filesystem>
29 #else
30 // else use boost
31 #include <boost/filesystem.hpp>
32 #endif
33 
34 #ifdef USE_CSTD_FILESYSTEM
35 namespace filesystem = std::filesystem;
36 #else
37 // else use boost
38 namespace filesystem = boost::filesystem;
39 #endif