Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix
Initializer
(and thus in particular SharedPtr
) for immovable …
…types before C++17. They cannot be returned by value. To support `SharedPtr` for such types, add `Initializer::ConstructAt()` for placement `new`. Also add `Initializer::MakeUnique()` for a common application of placement `new`. Use `Initializer::{MakeUnique,ConstructAt}()` in `{,Intrusive}SharedPtr` and `Chain::Block`, so that they support immovable types also before C++17. This in particular fixes `{Zstd,Lz4}Dictionary` before C++17. Internal cleanup: do not specialize `Initializer`, choose the appropriate base class instead. This reduces code duplication. PiperOrigin-RevId: 669371179
- Loading branch information