[libcxx-commits] [PATCH] D96523: [libc++] Rewrite the tuple constructors to be strictly Standards conforming
Jordan Rupprecht via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Apr 30 16:44:47 PDT 2021
rupprecht added a comment.
In D96523#2730264 <https://reviews.llvm.org/D96523#2730264>, @ldionne wrote:
> This should fix the instantiation depth issue: https://reviews.llvm.org/D101661
>
> @rupprecht Please ping me once you've reduced to something that doesn't involve Gmock and I'll look into it.
#include <any>
#include <tuple>
template <typename a>
class b {
b(a);
};
template <typename>
struct c;
template <typename m, typename... d>
struct c<m(d...)> {
using e = std::tuple<b<d>...>;
};
template <typename>
class f;
template <typename g>
class h {
typename c<g>::e i;
};
template <typename m, typename... d>
struct f<m(d...)> {
h<m(d...)> n();
};
class j {
void k() { l.n(); }
// Note: D96523 breaks this:
f<void(std::any, int)> l;
// Note: D96523 fixes this:
// f<void(std::any)> l;
};
https://www.godbolt.org/z/4W8b1G7Yd
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D96523/new/
https://reviews.llvm.org/D96523
More information about the libcxx-commits
mailing list