public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/22059] New: Inherited member as template argument
@ 2005-06-14 9:15 karlu at itn dot liu dot se
2005-06-14 9:17 ` [Bug c++/22059] " karlu at itn dot liu dot se
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: karlu at itn dot liu dot se @ 2005-06-14 9:15 UTC (permalink / raw)
To: gcc-bugs
user@host> gcc -Wall -o bug bug.cpp
bug.cpp: In function `int main()':
bug.cpp:23: error: could not convert template argument `&A::a' to `int AA::*'
bug.cpp:23: error: invalid type in declaration before ';' token
bug.cpp:17: warning: unused variable 'c'
bug.cpp:19: warning: unused variable 'cc'
bug.cpp:21: warning: unused variable 'b1'
bug.cpp:23: warning: unused variable 'b2'
user@host> uname -a
Linux red 2.6.11 #1 Thu Mar 3 15:09:43 CET 2005 i686 GNU/Linux
user@host> cat /etc/debian_version
testing/unstable
user@host> gcc -v
Reading specs from /usr/lib/gcc/i486-linux/3.4.5/specs
Configured with: ../src/configure -v
--enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr
--libexecdir=/usr/lib --with-gxx-include-dir=/usr/include/c++/3.4
--enable-shared --with-system-zlib --enable-nls --without-included-gettext
--program-suffix=-3.4 --enable-__cxa_atexit --enable-libstdcxx-allocator=mt
--enable-clocale=gnu --enable-libstdcxx-debug --enable-java-gc=boehm
--enable-java-awt=gtk --disable-werror i486-linux
Thread model: posix
gcc version 3.4.5 20050605 (prerelease) (Debian 3.4.4-0)
Tested also on "gcc (GCC) 3.3.6 (Debian 1:3.3.6-6)"
--
Summary: Inherited member as template argument
Product: gcc
Version: 3.4.5
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: karlu at itn dot liu dot se
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22059
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/22059] Inherited member as template argument
2005-06-14 9:15 [Bug c++/22059] New: Inherited member as template argument karlu at itn dot liu dot se
@ 2005-06-14 9:17 ` karlu at itn dot liu dot se
2005-06-14 9:18 ` karlu at itn dot liu dot se
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: karlu at itn dot liu dot se @ 2005-06-14 9:17 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From karlu at itn dot liu dot se 2005-06-14 09:17 -------
Created an attachment (id=9084)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=9084&action=view)
Test case
Compile and you will get an error.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22059
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/22059] Inherited member as template argument
2005-06-14 9:15 [Bug c++/22059] New: Inherited member as template argument karlu at itn dot liu dot se
2005-06-14 9:17 ` [Bug c++/22059] " karlu at itn dot liu dot se
@ 2005-06-14 9:18 ` karlu at itn dot liu dot se
2005-06-14 9:26 ` karlu at itn dot liu dot se
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: karlu at itn dot liu dot se @ 2005-06-14 9:18 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From karlu at itn dot liu dot se 2005-06-14 09:18 -------
Created an attachment (id=9085)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=9085&action=view)
The preprocessed file
This file contains pretty much the same thing as the test case.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22059
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/22059] Inherited member as template argument
2005-06-14 9:15 [Bug c++/22059] New: Inherited member as template argument karlu at itn dot liu dot se
2005-06-14 9:17 ` [Bug c++/22059] " karlu at itn dot liu dot se
2005-06-14 9:18 ` karlu at itn dot liu dot se
@ 2005-06-14 9:26 ` karlu at itn dot liu dot se
2005-06-14 12:38 ` pinskia at gcc dot gnu dot org
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: karlu at itn dot liu dot se @ 2005-06-14 9:26 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From karlu at itn dot liu dot se 2005-06-14 09:25 -------
I forgot to describe the problem.
The attached source code contains a template that has a member pointer argument.
When the template is used in a way so that the pointer should refer to an
inherited member a compiler error is rendered. I have also included a member
pointer example that is not in a template and that works fine. I'm not good at
reading the standard, but from what I can see there should be no difference
between how a member pointers are handled in template arguments and elsewhere.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22059
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/22059] Inherited member as template argument
2005-06-14 9:15 [Bug c++/22059] New: Inherited member as template argument karlu at itn dot liu dot se
` (2 preceding siblings ...)
2005-06-14 9:26 ` karlu at itn dot liu dot se
@ 2005-06-14 12:38 ` pinskia at gcc dot gnu dot org
2005-06-14 12:45 ` pinskia at gcc dot gnu dot org
2005-07-23 21:10 ` bangerth at dealii dot org
5 siblings, 0 replies; 7+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-06-14 12:38 UTC (permalink / raw)
To: gcc-bugs
--
What |Removed |Added
----------------------------------------------------------------------------
Attachment #9084|text/html |text/plain
mime type| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22059
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/22059] Inherited member as template argument
2005-06-14 9:15 [Bug c++/22059] New: Inherited member as template argument karlu at itn dot liu dot se
` (3 preceding siblings ...)
2005-06-14 12:38 ` pinskia at gcc dot gnu dot org
@ 2005-06-14 12:45 ` pinskia at gcc dot gnu dot org
2005-07-23 21:10 ` bangerth at dealii dot org
5 siblings, 0 replies; 7+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-06-14 12:45 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-06-14 12:45 -------
14.3.2 (5) says the following:
For a non-type template-parameter of type pointer to data member, qualification conversions (4.4) are
applied.
Meaning only adding cvq can be added which makes this invalid code.
ICC also rejects this code for the same reason as GCC.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22059
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/22059] Inherited member as template argument
2005-06-14 9:15 [Bug c++/22059] New: Inherited member as template argument karlu at itn dot liu dot se
` (4 preceding siblings ...)
2005-06-14 12:45 ` pinskia at gcc dot gnu dot org
@ 2005-07-23 21:10 ` bangerth at dealii dot org
5 siblings, 0 replies; 7+ messages in thread
From: bangerth at dealii dot org @ 2005-07-23 21:10 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From bangerth at dealii dot org 2005-07-23 21:07 -------
Just as Andrew says -- you can't do this. No conversions are applied.
W.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |INVALID
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22059
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2005-07-23 21:07 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-06-14 9:15 [Bug c++/22059] New: Inherited member as template argument karlu at itn dot liu dot se
2005-06-14 9:17 ` [Bug c++/22059] " karlu at itn dot liu dot se
2005-06-14 9:18 ` karlu at itn dot liu dot se
2005-06-14 9:26 ` karlu at itn dot liu dot se
2005-06-14 12:38 ` pinskia at gcc dot gnu dot org
2005-06-14 12:45 ` pinskia at gcc dot gnu dot org
2005-07-23 21:10 ` bangerth at dealii dot org
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).