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 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: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: 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: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: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? Gianni Mariani
  -- strict thread matches above, loose matches on Subject: below --
2003-04-29 17:56 Gianni Mariani
2003-04-29 17:26 Wolfgang Bangerth
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).