Assert(owning_aligned_vector->used_elements_end != nullptr,
ExcInternalError());
- if (std::is_trivial_v<T> == false)
+ if (std::is_trivially_destructible_v<T> == false)
for (T *p = owning_aligned_vector->used_elements_end - 1; p >= ptr;
--p)
p->~T();
// it, not unique_ptr) so it is still set to its correct value.
if (is_shmem_root)
- if (std::is_trivial_v<T> == false)
+ if (std::is_trivially_destructible_v<T> == false)
for (T *p = aligned_vector->used_elements_end - 1; p >= ptr; --p)
p->~T();
// call destructor on fields that are released, if the type requires it.
// doing it backward releases the elements in reverse order as compared to
// how they were created
- if (std::is_trivial_v<T> == false)
+ if (std::is_trivially_destructible_v<T> == false)
for (T *p = used_elements_end - 1; p >= elements.get() + new_size; --p)
p->~T();
used_elements_end = elements.get() + new_size;
// call destructor on fields that are released, if the type requires it.
// doing it backward releases the elements in reverse order as compared to
// how they were created
- if (std::is_trivial_v<T> == false)
+ if (std::is_trivially_destructible_v<T> == false)
for (T *p = used_elements_end - 1; p >= elements.get() + new_size; --p)
p->~T();
used_elements_end = elements.get() + new_size;
// call destructor on fields that are released, if the type requires it.
// doing it backward releases the elements in reverse order as compared to
// how they were created
- if (std::is_trivial_v<T> == false)
+ if (std::is_trivially_destructible_v<T> == false)
for (T *p = used_elements_end - 1; p >= elements.get() + new_size; --p)
p->~T();
used_elements_end = elements.get() + new_size;