public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
From: "Philippe A. Bouchard" <philippeb@videotron.ca>
To: nobody@gcc.gnu.org
Cc: gcc-prs@gcc.gnu.org,
Subject: Re: c++/7136: Template constants deduction
Date: Thu, 23 Jan 2003 05:36:00 -0000	[thread overview]
Message-ID: <20030123053600.20415.qmail@sources.redhat.com> (raw)

The following reply was made to PR c++/7136; it has been noted by GNATS.

From: "Philippe A. Bouchard" <philippeb@videotron.ca>
To: bangerth@dealii.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org,
 nobody@gcc.gnu.org, philippeb@videotron.ca, gcc-gnats@gcc.gnu.org
Cc:  
Subject: Re: c++/7136: Template constants deduction
Date: Thu, 23 Jan 2003 00:29:38 -0500

 Yes you're right but the following won't work either under gcc 2.95:
 
 struct Type
 {
  int i;
 };
 
 template <typename _T, int _T::* _I>
  struct Number {};
 
 template <typename _T, int _T::* _I>
  void foo(Number<_T, _I> const &)
  {
  }
 
 int main()
 {
  foo(Number<Type, & Type::i>());
 }
 
 Returns:
 template.cpp: In function `int main()':
 template.cpp:15: no matching function for call to `foo
 (Number<Type,&Type::i>)'
 
 
 
 Philippe
 
 
 ----- Original Message -----
 From: <bangerth@dealii.org>
 To: <gcc-bugs@gcc.gnu.org>; <gcc-prs@gcc.gnu.org>; <nobody@gcc.gnu.org>;
 <philippeb@videotron.ca>
 Sent: Wednesday, January 22, 2003 10:16 PM
 Subject: Re: c++/7136: Template constants deduction
 
 
 > Synopsis: Template constants deduction
 >
 > State-Changed-From-To: analyzed->closed
 > State-Changed-By: bangerth
 > State-Changed-When: Thu Jan 23 03:16:59 2003
 > State-Changed-Why:
 >     Nathan must have been having his afternoon nap when he
 >     confirmed this report :-)
 >
 >     The code is actually illegal, and gcc tells you quite
 >     correctly what is wrong:
 >     -----------------------------
 >     struct Type { int i; };
 >
 >     template <typename _T, int _T::*>
 >     struct Number {};
 >
 >     template <typename _T, int _T::*>
 >     void foo(Number<_T, int _T::*> const &)
 >     {}
 >
 >     int main() {
 >       foo(Number<Type, &Type::i>());
 >     }
 >     ------------------------------
 >
 >     In the argument list to foo(), the second template
 >     parameter to Number is "int T::*", which is a type, not
 >     a value. That's what the compiler is complaining about. In
 >     the call to foo(), the second argument is a value, as it
 >     should be.
 >
 >     W.
 >
 >
 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&p
 r=7136
 >
 


             reply	other threads:[~2003-01-23  5:36 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-23  5:36 Philippe A. Bouchard [this message]
  -- strict thread matches above, loose matches on Subject: below --
2003-01-23 15:06 Wolfgang Bangerth
2003-01-23  3:16 bangerth
2002-07-03 12:45 nathan
2002-06-26 23:06 philippeb

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=20030123053600.20415.qmail@sources.redhat.com \
    --to=philippeb@videotron.ca \
    --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: link
Be 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).