public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: c++/10541: Is NULL a valid pointer-type template argument?
@ 2003-04-29 17:26 Wolfgang Bangerth
0 siblings, 0 replies; 6+ messages in thread
From: Wolfgang Bangerth @ 2003-04-29 17:26 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c++/10541; it has been noted by GNATS.
From: Wolfgang Bangerth <bangerth@ices.utexas.edu>
To: Martin Sebor <sebor@roguewave.com>
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: c++/10541: Is NULL a valid pointer-type template argument?
Date: Tue, 29 Apr 2003 12:25:11 -0500 (CDT)
> > New Synopsis: Is NULL a valid pointer-type template argument?
> ...
>
> See http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_active.html#354
Very good! I'll augment the synopsis and put the report into suspended
until this is resolved.
Thanks
W.
-------------------------------------------------------------------------
Wolfgang Bangerth email: bangerth@ices.utexas.edu
www: http://www.ices.utexas.edu/~bangerth/
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: c++/10541: Is NULL a valid pointer-type template argument?
@ 2003-04-29 17:56 Gianni Mariani
0 siblings, 0 replies; 6+ messages in thread
From: Gianni Mariani @ 2003-04-29 17:56 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c++/10541; it has been noted by GNATS.
From: Gianni Mariani <gianni@mariani.ws>
To: Wolfgang Bangerth <bangerth@ices.utexas.edu>
Cc: gcc-bugs@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Subject: Re: c++/10541: Is NULL a valid pointer-type template argument?
Date: Tue, 29 Apr 2003 10:47:58 -0700
Wolfgang Bangerth wrote:
>>I remember reading a while back that C/C++ considers the value 0 to be a
>>valid value for any pointer type. Hence 0 CAN BE of type char *.
>>
>>
>
>Well, 0 is of type "signed int". It can be converted to any pointer type
>implicitly. The question is whether the compiler is supposed to do
>implicit conversions for template args. I don't think so.
>
>
>
>>Other compilers seem to take this value.
>>
>>
>
>icc doesn't, for example.
>
>
In this posting:
news://nntp.concentric.net:119/vatbv4b1hbd6d3@corp.supernews.com
http://groups.google.com/groups?dq=&hl=en&lr=&ie=UTF-8&threadm=b8m2ve%243h4%40dispatch.concentric.net&prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DUTF-8%26group%3Dcomp.lang.c%252B%252B
>According to 14.3.2/1 a pointer template argument must be a pointer to
>> an object with external linkage. 0 is certainly not such a pointer.
>>
>> Generally, you'll need
>>
>> IType<char*, someexternarrayname>
>> or
>> IType<char*, &someexternchar>
>>
>> Apparently, Comeau gets this wrong, allowing IType<char *,
>> static_cast<char *>(0)>.
>
>
There is an open issue 354 on this, BTW. I would think that
Comeau is just running ahead of the pack (along with EDG, MS,
Borland, and Cfront -- as described in the issue). Gcc and
Sun are the pack.
Seems like this is an open issue.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: c++/10541: Is NULL a valid pointer-type template argument?
@ 2003-04-29 17:26 Wolfgang Bangerth
0 siblings, 0 replies; 6+ messages in thread
From: Wolfgang Bangerth @ 2003-04-29 17:26 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c++/10541; it has been noted by GNATS.
From: Wolfgang Bangerth <bangerth@ices.utexas.edu>
To: Gianni Mariani <gianni@mariani.ws>
Cc: gcc-bugs@gcc.gnu.org, <gcc-gnats@gcc.gnu.org>
Subject: Re: c++/10541: Is NULL a valid pointer-type template argument?
Date: Tue, 29 Apr 2003 12:22:51 -0500 (CDT)
> I remember reading a while back that C/C++ considers the value 0 to be a
> valid value for any pointer type. Hence 0 CAN BE of type char *.
Well, 0 is of type "signed int". It can be converted to any pointer type
implicitly. The question is whether the compiler is supposed to do
implicit conversions for template args. I don't think so.
> Other compilers seem to take this value.
icc doesn't, for example.
W.
-------------------------------------------------------------------------
Wolfgang Bangerth email: bangerth@ices.utexas.edu
www: http://www.ices.utexas.edu/~bangerth/
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: c++/10541: Is NULL a valid pointer-type template argument?
@ 2003-04-29 17:26 Gianni Mariani
0 siblings, 0 replies; 6+ messages in thread
From: Gianni Mariani @ 2003-04-29 17:26 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c++/10541; it has been noted by GNATS.
From: Gianni Mariani <gianni@mariani.ws>
To: bangerth@dealii.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org,
gcc-gnats@gcc.gnu.org
Cc:
Subject: Re: c++/10541: Is NULL a valid pointer-type template argument?
Date: Tue, 29 Apr 2003 10:18:25 -0700
bangerth@dealii.org wrote:
> Your first case is invalid, since 0 is of type int,
>
I remember reading a while back that C/C++ considers the value 0 to be a
valid value for any pointer type. Hence 0 CAN BE of type char *.
Other compilers seem to take this value.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: c++/10541: Is NULL a valid pointer-type template argument?
@ 2003-04-29 17:16 Martin Sebor
0 siblings, 0 replies; 6+ messages in thread
From: Martin Sebor @ 2003-04-29 17:16 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c++/10541; it has been noted by GNATS.
From: Martin Sebor <sebor@roguewave.com>
To: gcc-gnats@gcc.gnu.org
Cc: bangerth@dealii.org
Subject: Re: c++/10541: Is NULL a valid pointer-type template argument?
Date: Tue, 29 Apr 2003 11:08:25 -0600
bangerth@dealii.org wrote:
> New Synopsis: Is NULL a valid pointer-type template argument?
...
See http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_active.html#354
Regards
Martin
> http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10541
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: c++/10541: Is NULL a valid pointer-type template argument?
@ 2003-04-29 16:37 bangerth
0 siblings, 0 replies; 6+ messages in thread
From: bangerth @ 2003-04-29 16:37 UTC (permalink / raw)
To: gcc-bugs, gcc-prs, gianni, nobody
Old Synopsis: template <char * w_val > does not work
New Synopsis: Is NULL a valid pointer-type template argument?
State-Changed-From-To: open->analyzed
State-Changed-By: bangerth
State-Changed-When: Tue Apr 29 16:37:30 2003
State-Changed-Why:
Your first case is invalid, since 0 is of type int,
but a char* is required. The last one is also invalid,
since the address of an object with external linkage
is required, but you give the value of a member variable.
Remains the question whether
--------------------
template <char *> class T {};
T<static_cast<char *>(0)> t;
--------------------------
is legal. I tend to think that this is not so (but icc7
disagrees with me), given 14.1.3:
3 A non-type template-parameter shall have one of the following (option-
ally cv-qualified) types:
[...]
--pointer to object, accepting an address constant expression desig-
nating a named object with external linkage,
The NULL pointer is certainly not the address of a named
object, but I can see why it would be useful to allow
this special case.
I leave this last question to more seasoned language lawyers.
W.
but
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10541
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2003-04-29 17:56 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-04-29 17:26 c++/10541: Is NULL a valid pointer-type template argument? Wolfgang Bangerth
-- strict thread matches above, loose matches on Subject: below --
2003-04-29 17:56 Gianni Mariani
2003-04-29 17:26 Gianni Mariani
2003-04-29 17:26 Wolfgang Bangerth
2003-04-29 17:16 Martin Sebor
2003-04-29 16:37 bangerth
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).