Despite being move-only, std::vector<unique_ptr> advertizes
is_copyable:
https://quuxplusone.github.io/blog/2020/02/05/vector-is-copyable-except-when-its-not/
Our combined reallocation and resizing function, reallocate_impl(),
runs afoul of this when it uses std::is_copyable in a constexpr-if to
implement resize(n, v) without running into problems with move-only
types: the trait is true, but actual instantation runs into a
static_assert in the STL implementation.
To fix, move the problematic resize functionality out of
reallocate_impl() and into the resp. resize_impl overloads. The shrink
functionality remains in reallocate_impl(), because there are many
more users, and it only requires destructible<T>, which isn't
constraining at all.
Amends
|
||
|---|---|---|
| .. | ||
| animation | ||
| global | ||
| io | ||
| itemmodels | ||
| kernel | ||
| mimetypes | ||
| platform | ||
| plugin | ||
| serialization | ||
| text | ||
| thread | ||
| time | ||
| tools | ||
| CMakeLists.txt | ||