On 05/07/2017 17:24, Martin Sebor wrote:
[*] While the example (copied below) is valid, accessing the object after someFunction() has returned via a reference or pointer to it is not.void somefunction(const Object& object); { void* p = &object; object.~Object(); new(p) Object(); }
I think it's problematic as explained in p0532r0.pdf. We construct and destroy objects in the internal buffer of std::vector and we don't update the pointer every time. I don't see myself understanding when std::launder must be used, looks too expert-grade feature.
Best, Ion
