Quuxplusone added inline comments.

================
Comment at: include/experimental/memory_resource:489
+    memory_resource* __res_;
+    size_t __next_buffer_size_;
+};
----------------
Quuxplusone wrote:
> I've discovered that Boost.Container does not bother to preserve this state 
> across calls to `release()`. If that's legal, then we can save 8 bytes here. 
> I've asked for an LWG issue to be opened on the subject of "what the heck is 
> `release()` supposed to do anyway."
On discussion with Ion GaztaƱaga, Pablo Halpern, and Casey Carter, I've come to 
the conclusion that we *must not* preserve this state across calls to 
`release`, no matter what the Standard currently says, because that leads to 
insanely high memory usage when calling `mr.release()` in a loop. (Casey 
implies that MSVC's implementation has this issue; Pablo confirms that he never 
intended it.)

Fixed my implementation and added a regression test in 
`test/libcxx/experimental/memory/memory.resource.monotonic.buffer/monotonic.buffer.mem/allocate_in_geometric_progression.pass.cpp`.


Repository:
  rCXX libc++

https://reviews.llvm.org/D47111



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to