basically some types like std::string might not be copiable by memcpy if too short. The proposed fix is to use c++11 type-traits to detect this and bypass memcpy (in Memory.h) in such cases. In c++98, we would document it a known pitfall.
In the same vein, NumTraits::RequireInitialization currently default to:
RequireInitialization = internal::is_arithmetic<T>::value ? 0 : 1
whereas c++11 provides more accurate type-traits for that.
oops, the missing link is: https://forum.kde.org/viewtopic.php?f=74&t=140169
Summary: Bug 1432: fix conservativeResize for non-relocatable scalar types. For those we need to by-pass realloc routines and fall-back to allocate as new - copy - delete. The remaining problem is that we don't have any mechanism to accurately determine whether a type is relocatable or not, so currently let's be super conservative using either RequireInitialization or std::is_trivially_copyable