[libcxx-commits] [PATCH] D116621: [libc++][P2321R2] Add const overloads to tuple swap, construction and assignment
Nikolas Klauser via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Mar 18 12:28:45 PDT 2022
philnik added inline comments.
================
Comment at: libcxx/include/type_traits:506-509
+ template <class...>
+ using _FirstImpl = __nat;
+ template <class...>
+ using _SecondImpl = __nat;
----------------
EricWF wrote:
> philnik wrote:
> > Quuxplusone wrote:
> > > Uh...? This completely changes the meaning of e.g. `_SecondType<int>` from "ill-formed" to "well-formed `__nat`." There's no way that's safe.
> > `_FirstType` and `_SecondType` are exclusively used in `<tuple>` and only in `is_*` contexts. If I'm not mistaken `__nat` should be false in every single case.
> I'm with Arthur, this should not succeed. This needs to be substitution failure.
In which case does it have to be a substitution failure? IIRC there are cases where I need it to //not// be a substitution failure.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D116621/new/
https://reviews.llvm.org/D116621
More information about the libcxx-commits
mailing list