mirror of
https://git.mirrors.martin98.com/https://github.com/gulrak/filesystem
synced 2025-06-11 02:36:33 +08:00
Updated readme with some fallback use-case help and adapted the tests to reflect parts of it.
This commit is contained in:
parent
cf48497662
commit
90bab0edee
25
README.md
25
README.md
@ -45,7 +45,7 @@ if you can't use it.
|
||||
Tests are currently run with:
|
||||
|
||||
* macOS 10.12: XCode 9.2 (clang-900.0.39.2), GCC 8.1.0, Clang 8.0.0 (HEAD, homebrew)
|
||||
* Windows 10: Visual Studio 2017 15.7.4, MingW GCC 5.3
|
||||
* Windows 10: Visual Studio 2017 15.8.5, MingW GCC 5.3
|
||||
* Linux: Ubuntu 18.04LTS GCC 7.3 & GCC 8.0.1
|
||||
|
||||
|
||||
@ -83,10 +83,11 @@ As it is a header-only library, it should be enough to copy the header
|
||||
into your project folder oder point your include path to this directory and
|
||||
simply include the `filesystem.h` header.
|
||||
|
||||
Everything is in the namespace `ghc::filesystem`, so one way to use it could be:
|
||||
Everything is in the namespace `ghc::filesystem`, so one way to use it only as
|
||||
a fallback could be:
|
||||
|
||||
```cpp
|
||||
#if defined(__cplusplus) && __cplusplus >= 201703L
|
||||
#if defined(__cplusplus) && __cplusplus >= 201703L && defined(__has_include) && __has_include(<filesystem>)
|
||||
#include <filesystem>
|
||||
namespace fs = std::filesystem;
|
||||
#else
|
||||
@ -95,16 +96,26 @@ namespace fs = ghc::filesystem;
|
||||
#endif
|
||||
```
|
||||
|
||||
If you are paranoid you can add the feature tests of C++17 to ensure your compiler
|
||||
already has std::filesystem when using `-std=c++17`:
|
||||
If you want to also use the `fstream` wrapper with `path` support as fallback,
|
||||
you might use:
|
||||
|
||||
```cpp
|
||||
#if defined(__has_include) && __has_include(<filesystem>)
|
||||
#include <filesystem>
|
||||
namespace fs = std::filesystem;
|
||||
namespace fs {
|
||||
using namespace std::filesystem;
|
||||
using ifstream = std::ifstream;
|
||||
using ofstream = std::ofstream;
|
||||
using fstream = std::fstream;
|
||||
}
|
||||
#else
|
||||
#include "filesystem.h"
|
||||
namespace fs = ghc::filesystem;
|
||||
namespace fs {
|
||||
using namespace ghc::filesystem;
|
||||
using ifstream = ghc::filesystem::ifstream;
|
||||
using ofstream = ghc::filesystem::ofstream;
|
||||
using fstream = ghc::filesystem::fstream;
|
||||
}
|
||||
#endif
|
||||
```
|
||||
|
||||
|
@ -45,12 +45,12 @@
|
||||
|
||||
#ifdef USE_STD_FS
|
||||
#include <filesystem>
|
||||
namespace fs = std::filesystem;
|
||||
namespace ghc {
|
||||
namespace fs {
|
||||
using namespace std::filesystem;
|
||||
using ifstream = std::ifstream;
|
||||
using ofstream = std::ofstream;
|
||||
using fstream = std::fstream;
|
||||
} // namespace ghc
|
||||
}
|
||||
#ifdef __GNUC__
|
||||
#define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
|
||||
#endif
|
||||
@ -63,12 +63,12 @@ using fstream = std::fstream;
|
||||
#else
|
||||
#define NOMINMAX
|
||||
#include "../filesystem.h"
|
||||
namespace fs = ghc::filesystem;
|
||||
namespace ghc {
|
||||
using ifstream = filesystem::ifstream;
|
||||
using ofstream = filesystem::ofstream;
|
||||
using fstream = filesystem::fstream;
|
||||
} // namespace ghc
|
||||
namespace fs {
|
||||
using namespace ghc::filesystem;
|
||||
using ifstream = ghc::filesystem::ifstream;
|
||||
using ofstream = ghc::filesystem::ofstream;
|
||||
using fstream = ghc::filesystem::fstream;
|
||||
}
|
||||
#endif
|
||||
|
||||
#define CATCH_CONFIG_MAIN
|
||||
@ -128,7 +128,7 @@ private:
|
||||
|
||||
static void generateFile(const fs::path& pathname, int withSize = -1)
|
||||
{
|
||||
ghc::ofstream outfile(pathname.string());
|
||||
fs::ofstream outfile(pathname.string());
|
||||
if (withSize < 0) {
|
||||
outfile << "Hello world!" << std::endl;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user