mirror of
https://github.com/boostorg/uuid.git
synced 2026-01-19 04:42:16 +00:00
v7 microsecond timestamp can exceed 999 when the system clock resolution is too coarse (e.g. MinGW)
This commit is contained in:
@@ -8,25 +8,27 @@
|
||||
* {cpp}03 is no longer supported, a {cpp}11 compiler is required.
|
||||
This includes GCC 4.8 or later, MSVC 14.0 or later, and MinGW-w64.
|
||||
* Removed direct dependencies on Core, Io, Move, NumericConversion, StaticAssert, TTI, Random, ContainerHash.
|
||||
The library now only has five Boost dependencies (as opposed to 39 in Boost 1.85.)
|
||||
The library now only has five Boost dependencies in total (as opposed to 39 in Boost 1.85.)
|
||||
* Moved `std::hash` support from `uuid_hash.hpp` to `uuid.hpp`.
|
||||
* Moved serialization support from `uuid_serialize.hpp` to `uuid.hpp`.
|
||||
* Added convenience header `<boost/uuid.hpp>`.
|
||||
* Improved the quality and speed of `hash_value`.
|
||||
* Removed platform-specific entropy providers; the implementation now uses `std::random_device` as the source of entropy.
|
||||
* Since `basic_name_generator` had only two valid instantiations, both of which are already provided (`name_generator_md5` and `name_generator_sha1`),
|
||||
it was made a private implementation detail and is no longer part of the public interface.
|
||||
* While `name_generator` and `name_generator_latest` are still provided for compatibility, their use is no longer encouraged.
|
||||
* The definitions of the well-known RFC 4122 namespaces have been moved to their own header, `boost/uuid/namespaces.hpp`.
|
||||
* Added `operator\<\=>`.
|
||||
* The generic (non-SIMD) implementations of `is_nil`, `operator==`, `operator<`, `swap`, and `operator\<\=>` now use `__uint128_t` operations when that type is available, and `uint64_t` operations otherwise.
|
||||
* Added convenience header `<boost/uuid.hpp>`.
|
||||
* Removed platform-specific entropy providers; the implementation now uses `std::random_device` as the source of entropy.
|
||||
* `basic_random_generator` has been moved to its own header, `boost/uuid/basic_random_generator.hpp`.
|
||||
* `basic_random_generator` has been changed to hold the underlying generator by value, to avoid dynamic allocation and restore copyability.
|
||||
* `random_generator_pure` is now an alias for `basic_random_generator<std::random_device>` and its use is discouraged.
|
||||
* `random_generator_mt19937` is now an alias for `basic_random_generator<std::mt19937>` and its use is discouraged.
|
||||
* `random_generator` now uses a cryptographically strong pseudorandom number generator (ChaCha20/12), seeded with entropy from `std::random_device`.
|
||||
It's the recommended way to generate version 4 UUIDs.
|
||||
* Since `basic_name_generator` had only two valid instantiations, both of which are already provided (`name_generator_md5` and `name_generator_sha1`),
|
||||
it was made a private implementation detail and is no longer part of the public interface.
|
||||
* While `name_generator` and `name_generator_latest` are still provided for compatibility, their use is no longer encouraged.
|
||||
* The definitions of the well-known RFC 4122 namespaces have been moved to their own header, `boost/uuid/namespaces.hpp`.
|
||||
* Added `time_generator_v1`, a generator that produces version 1 time-based UUIDs.
|
||||
* Added `time_generator_v6`, a generator that produces version 6 time-based UUIDs.
|
||||
* Added `time_generator_v7`, a generator that produces version 7 time-based UUIDs.
|
||||
* Added `uuid_clock`, a `<chrono>`-compatible clock with an epoch and a resolution as specified in RFC 4122.
|
||||
* Accessors for the timestamp, the time point, the clock sequence, and the node identifier have been added to `uuid`.
|
||||
* Improved the `what()` strings of the `std::runtime_error` exceptions thrown by `string_generator`.
|
||||
|
||||
Reference in New Issue
Block a user