CD
std::vector<std::unique_ptr<T>>
перестанет память занулять перед деаллокацией после реаллокации в push_back
так и приходиSize: a a a
CD
std::vector<std::unique_ptr<T>>
перестанет память занулять перед деаллокацией после реаллокации в push_back
так и приходиCt
RP
RP
CD
RP
Т8
-fno-delete-null-pointer-checks
to disable this optimization for programs that depend on that behavior.RP
RP
RP
Т8
CD
Ct
RP
RP
Ct
SP
Т8
RP
Reference implementation of relocate_at and uninitialized_relocate
template<class T>
T *relocate_at(T *source, T *dest)
{
if constexpr (std::is_trivially_relocatable_v<T>) {
std::memmove(dest, source, sizeof(T));
return std::launder(dest);
} else {
T *result = ::new (dest) (std::move(*source));
source->~T();
return result;
}
}
RP
source->~T();