Placement NWBI<- FAQ (New/Box/In/Left Arrow)

Having recently re-read this FAQ, I've developed a couple of new-ish thoughts :slightly_smiling::

I don't see how this could work without relying on RVO. What if the VALUE is a function call? IIRC, the idea was that large values are returned by pointer into the caller-allocated space anyways, so all that box expression needs to do is ensure that pointer passed to the callee is the one returned by the placer. Why wouldn't this work with closures?

Yeah, but if run_code() returns Result<T,E>, how can we avoid creating a temporary value for it? We can't put it into the memory allocated by the placer, since Result<T,..> is larger than T (in most cases), so it'd have to go on the stack, which kinda defeats the whole purpose of using placement operator...