[PATCH] D54485: [libcxx] Implement P0318R1: unwrap_ref_decay and unwrap_reference

Eric Fiselier via Phabricator reviews at reviews.llvm.org
Tue Nov 13 21:20:57 PST 2018

EricWF requested changes to this revision.
EricWF added inline comments.
This revision now requires changes to proceed.

Comment at: libcxx/include/functional:2536
+#if _LIBCPP_STD_VER > 17
+using __detail::unwrap_reference;
+using __detail::unwrap_ref_decay;
ldionne wrote:
> Is this a viable implementation strategy? The nice part is that this allows us to reuse these metafunctions to implement `make_tuple` and `make_pair` before C++20, but IDK whether the standard allows us to bring these names into namespace `std` with a `using` declaration?
> Is that observable (e.g. through ADL associated namespaces)?
After more thought: No, this is not viable.

I believe these are technically customization points for users, so it needs to have the same declaration as in the standard, not just the same spelling.


I guess the best route is to have `__foo` for use pre-C++20, and the we can implement `foo` in terms of `__foo`?

  rCXX libc++


More information about the libcxx-commits mailing list