public inbox for gcc-prs@sourceware.org help / color / mirror / Atom feed
From: Nathanael Nerode <neroden@twcny.rr.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, Subject: Re: c++/3831: problem with forward declaration of function taking a reference to a generic member Date: Fri, 03 Jan 2003 13:36:00 -0000 [thread overview] Message-ID: <20030103133602.13623.qmail@sources.redhat.com> (raw) The following reply was made to PR c++/3831; it has been noted by GNATS. From: Nathanael Nerode <neroden@twcny.rr.com> To: gcc-gnats@gcc.gnu.org, gcc-prs@gcc.gnu.org, lachaume@laog.obs.ujf.grenoble.fr, gcc-bugs@gcc.gnu.org, nobody@gcc.gnu.org Cc: Subject: Re: c++/3831: problem with forward declaration of function taking a reference to a generic member Date: Fri, 3 Jan 2003 08:26:34 -0500 3.4 behaves totally differently on the examples. I believe the stated problem is fixed. However, I need to verify that the two changes I made to the examples to get them to work are, in fact, fixes needed to make the code legal. (If not, I have revealed other bugs...) If the definition of struct A is moved above the forward declaration of g, and the use of 'typename' inside the formal arguments is removed in all cases, all is well. -- template <typename u> struct A; template <typename u> struct A { template <typename v> struct B { }; }; template <typename u, typename v> void g(A<u>::B<v>&); template <typename u, typename v> void g(A<u>::B<v>&); int main() { A<int>::B<float> b; g<int, float>(b); } -- I believe that the definition of struct A needs to be above the declaration of g because otherwise B isn't declared at the time of declaration of g. I can't figure out a way to declare B before the definition of A. If there is one in the C++ standard, I'll be happy to use it and see if that works. I don't know why the 'typename' has to be removed from inside the arguments. But it it isn't removed, g++ 3.4 does the same thing as it does if B isn't declared before g: it decides that g is not a function (calls it a "variable or field"). --Nathanael
next reply other threads:[~2003-01-03 13:36 UTC|newest] Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2003-01-03 13:36 Nathanael Nerode [this message] -- strict thread matches above, loose matches on Subject: below -- 2003-05-01 17:08 giovannibajo 2001-08-01 5:39 nathan 2001-07-26 5:56 lachaume
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=20030103133602.13623.qmail@sources.redhat.com \ --to=neroden@twcny.rr.com \ --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).