diff options
author | Eric Fiselier <eric@efcs.ca> | 2018-04-02 23:03:41 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2018-04-02 23:03:41 +0000 |
commit | d7fae181c3954886257fb33d0a57b954b26da745 (patch) | |
tree | 841df55a810bc7446cf7afdd6811b3f1d79a3fc8 /libcxx/benchmarks/GenerateInput.hpp | |
parent | 298ffc609bf5c67079dbeb77e3f75e5bc18fde7a (diff) | |
download | bcm5719-llvm-d7fae181c3954886257fb33d0a57b954b26da745.tar.gz bcm5719-llvm-d7fae181c3954886257fb33d0a57b954b26da745.zip |
Implement filesystem NB comments, relative paths, and related issues.
This is a fairly large patch that implements all of the filesystem NB comments
and the relative paths changes (ex. adding weakly_canonical). These issues
and papers are all interrelated so their implementation couldn't be split up
nicely.
This patch upgrades <experimental/filesystem> to match the C++17 spec and not
the published experimental TS spec. Some of the changes in this patch are both
API and ABI breaking, however libc++ makes no guarantee about stability for
experimental implementations.
The major changes in this patch are:
* Implement NB comments for filesystem (P0492R2), including:
* Implement `perm_options` enum as part of NB comments, and update the
`permissions` function to match.
* Implement changes to `remove_filename` and `replace_filename`
* Implement changes to `path::stem()` and `path::extension()` which support
splitting examples like `.profile`.
* Change path iteration to return an empty path instead of '.' for trailing
separators.
* Change `operator/=` to handle absolute paths on the RHS.
* Change `absolute` to no longer accept a current path argument.
* Implement relative paths according to NB comments (P0219r1)
* Combine `path.cpp` and `operations.cpp` since some path functions require
access to the operations internals, and some fs operations require access
to the path parser.
llvm-svn: 329028
Diffstat (limited to 'libcxx/benchmarks/GenerateInput.hpp')
-rw-r--r-- | libcxx/benchmarks/GenerateInput.hpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libcxx/benchmarks/GenerateInput.hpp b/libcxx/benchmarks/GenerateInput.hpp index 9d5adac4af4..8c97f5881f1 100644 --- a/libcxx/benchmarks/GenerateInput.hpp +++ b/libcxx/benchmarks/GenerateInput.hpp @@ -29,14 +29,16 @@ inline std::default_random_engine& getRandomEngine() { return RandEngine; } + inline char getRandomChar() { std::uniform_int_distribution<> LettersDist(0, LettersSize-1); return Letters[LettersDist(getRandomEngine())]; } template <class IntT> -inline IntT getRandomInteger() { - std::uniform_int_distribution<IntT> dist; +inline IntT getRandomInteger(IntT Min = 0, + IntT Max = std::numeric_limits<IntT>::max()) { + std::uniform_int_distribution<IntT> dist(Min, Max); return dist(getRandomEngine()); } |