https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70141

--- Comment #8 from Alexander Kondratskiy <kholdstare0.0 at gmail dot com> ---
I'm sorry Markus, but "clang issues a warning" is not a good enough reason to
mark this invalid. By the same token, the warning in clang could have been
introduced "because gcc issues an error". What happened to independent
implementations?

The example you gave:

        template <typename T> struct X {};
        template <typename T> struct X<typename T::foo> {};

is not the same situation as I posted originally. Here, the nested type foo is
nested inside a type trying to be deduced. I would never expect this to work,
and I agree with clang that it should be an error

My original example is closer to something like:

        struct outer{ template <typename T> struct foo { }; };
        template <typename T> struct X {};
        template <typename T> struct X<outer::foo<T>> {};

The outer type is concrete here, and in my original example.

Please, take another look.

Thank you.

Reply via email to