public inbox for gcc-prs@sourceware.org help / color / mirror / Atom feed
From: "Giovanni Bajo" <giovannibajo@libero.it> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, Subject: Re: c++/7033: [3.3/3.4 regression] [2003-05-30] Partial template specializations accepted even if a template parameter is used in a non-deduced context Date: Mon, 05 May 2003 11:26:00 -0000 [thread overview] Message-ID: <20030505112601.18878.qmail@sources.redhat.com> (raw) [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 2040 bytes --] The following reply was made to PR c++/7033; it has been noted by GNATS. From: "Giovanni Bajo" <giovannibajo@libero.it> To: <gcc-gnats@gcc.gnu.org>, <Theodore.Papadopoulo@sophia.inria.fr>, <gcc-bugs@gcc.gnu.org>, <nobody@gcc.gnu.org>, <gcc-prs@gcc.gnu.org>, <Lionel.Champalaune@sophia.inria.fr> Cc: Subject: Re: c++/7033: [3.3/3.4 regression] [2003-05-30] Partial template specializations accepted even if a template parameter is used in a non-deduced context Date: Mon, 5 May 2003 13:20:01 +0200 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=7033 The specialization should not be selected because §14.8.2.4p4 clearly specifies that A<T>::B<Q> is a non-deduced context for both T and Q. But there's more: I'm confident that defining a partial template specialization whose arguments can't be fully deduced from the arguments of the original template is ill-formed. In fact, GCC correctly rejects this: ----------------------------------------------- template <class> struct K; template <class T> struct K<int> {}; ----------------------------------------------- pr7033.cpp:4: error: template parameters not used in partial specialization: pr7033.cpp:4: error: `T' but it fails to reject this: ----------------------------------------------- template <typename, typename> struct S; template <template <typename> class C, typename T, typename V> struct S<C<T>,typename C<T>::template it<V> > {}; ----------------------------------------------- which is currently accepted by 3.3 and 3.4, even if "V" is used only in non-deduced contexts. This is a regression (rechecked on CVS 20050305 for both 3.3 and 3.4) with respect to 2.95 which was rejecting the code: pr7033.cpp:6: template parameters not used in partial specialization: pr7033.cpp:6: `V' (actually, the error message could be "template parameter used in non-decuded context", but anyway). This is a reject-legal regression, and I now flagged it as such. Giovanni Bajo
next reply other threads:[~2003-05-05 11:26 UTC|newest] Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2003-05-05 11:26 Giovanni Bajo [this message] 2003-05-05 11:36 Giovanni Bajo 2003-05-06 18:36 Theodore Papadopoulo 2003-05-06 23:56 Giovanni Bajo
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20030505112601.18878.qmail@sources.redhat.com \ --to=giovannibajo@libero.it \ --cc=gcc-prs@gcc.gnu.org \ --cc=nobody@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).