https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77629
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |NEW
Last reconfirmed| |2016-09-18
CC| |jason at gcc dot gnu.org
Resolution|DUPLICATE |---
Ever confirmed|0 |1
--- Comment #2 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Started with r238696:
commit 44d0a5f893a449013cf4d64127dcac7b51c0a8e8
Author: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sun Jul 24 23:40:05 2016 +0000
PR c++/71515 - typename in partial specialization
* pt.c (resolve_typename_type): Try to avoid calling
currently_open_class.
Testcase:
template <bool> struct A;
template <bool _Cond> using enable_if_t = typename A<_Cond>::type;
template <typename, int, typename, typename> struct B;
template <int> struct C;
template <typename> struct D;
template <typename Scalar_, int Size_, typename Derived>
struct B<Scalar_, Size_, Derived, enable_if_t<C<Size_>::peel>> {
using Base = D<Scalar_>;
// typedef D<Scalar_> Base; // OK
using typename Base::Scalar;
Scalar a;
};
See: PR69481 for a similar issue.