[PATCH] D47090: Implement C++17 <memory_resource>.

Eric Fiselier via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri May 18 23:51:58 PDT 2018


EricWF added a comment.

In https://reviews.llvm.org/D47090#1105389, @Quuxplusone wrote:

> > I would prefer if we completed <experimental/memory_resource> (according to the current standard, not the LFTS spec), and then moved it.
> >  Would you be willing to do that instead?
>
> Let me see if I understand. libc++'s `<experimental/memory_resource>` differs from C++17 `<memory_resource>` in at least these ways:
>  (A) It's missing `monotonic_buffer_resource` and `{un,}synchronized_pool_resource`


Those were initially in the LFTS spec, I think they're in LFTS v2.

> (B) It's got different semantics around uses-allocator construction because of https://wg21.link/lwg2969

Issue resolutions should probably be applied to the experimental versions as well.

> (C) It's got a different header name

I don't think this is relevant.

> This patch is basically proposing to fix things in the order C-A-B (and fix C by making copies of everything); you're proposing to fix things in the order A-B-C (and fix C by moving everything).
> 
> I have no objection to fixing A in `<experimental/memory_resource>` if people think that'd be useful. I didn't do that in this patch simply because I'd observed other `<experimental/*>` headers already getting replaced with `#error` messages, and it seemed like any further work on the `<experimental/*>` headers would have been wasted.
> 
> I don't know who's using `<experimental/memory_resource>` today, but in theory I worry that fixing B in `<experimental/memory_resource>` (before doing C) might actually break someone's code.

I'm not concerned with it. We make no promises about ABI and API stability for <experimental> headers.  Do we implement the LFTS v1, v2, or in future, v3, API? I would rather follow the standard spec. I believe
it will actually make transitioning from `<experimental/foo>` to `<foo>`, since the behaviour is the same.


Repository:
  rCXX libc++

https://reviews.llvm.org/D47090





More information about the cfe-commits mailing list