public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: c++/3333: Using declaration doesn't work with classes.
@ 2001-06-26  9:26 Martin Sebor
  0 siblings, 0 replies; 3+ messages in thread
From: Martin Sebor @ 2001-06-26  9:26 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

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

From: Martin Sebor <sebor@roguewave.com>
To: aroach@stoic.electriceyeball.com
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: c++/3333: Using declaration doesn't work with classes.
Date: Tue, 26 Jun 2001 10:25:40 -0600

 aroach@stoic.electriceyeball.com wrote:
 > 
 > >Number:         3333
 > >Category:       c++
 > >Synopsis:       Using declaration doesn't work with classes.
 ...
 > >Description:
 > Using declaration should be usable for classes as well as namespaces in
 > most cases, but GCC restricts most uses to namespaces.
 
 7.3.3, p6: A using-declaration for a class member shall be
 a member-declaration.
 
 You can't declare a class member in namespace scope so the test case
 is ill-formed.
 
 Regards
 Martin


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: c++/3333: Using declaration doesn't work with classes.
@ 2001-07-01  7:57 nathan
  0 siblings, 0 replies; 3+ messages in thread
From: nathan @ 2001-07-01  7:57 UTC (permalink / raw)
  To: aroach, gcc-bugs, gcc-prs, nobody

Synopsis: Using declaration doesn't work with classes.

State-Changed-From-To: open->closed
State-Changed-By: nathan
State-Changed-When: Sun Jul  1 07:57:26 2001
State-Changed-Why:
    You are mistaken. Only using declarations at class scope
    can give a qualified name of a (base) class member.
    Your example has a using declaration at namespace scope.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=3333&database=gcc


^ permalink raw reply	[flat|nested] 3+ messages in thread

* c++/3333: Using declaration doesn't work with classes.
@ 2001-06-21  8:46 aroach
  0 siblings, 0 replies; 3+ messages in thread
From: aroach @ 2001-06-21  8:46 UTC (permalink / raw)
  To: gcc-gnats

>Number:         3333
>Category:       c++
>Synopsis:       Using declaration doesn't work with classes.
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          rejects-legal
>Submitter-Id:   net
>Arrival-Date:   Thu Jun 21 08:46:02 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Anthony Roach
>Release:        3.0
>Organization:
>Environment:
System: Linux stoic 2.2.19 #1 Thu Apr 5 15:18:02 EST 2001 i686 unknown
Architecture: i686

	
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../gcc-3.0/configure --prefix=/usr/local/opt/gcc-3.0
>Description:
Using declaration should be usable for classes as well as namespaces in
most cases, but GCC restricts most uses to namespaces.
>How-To-Repeat:
source that produces the bug:
// BEGIN: usingBug.cpp
class A
{
public:
	class B
	{

	};
};

using A::B;

int main()
{
	B b;

	return 0;
}
// END: usingBug.cpp

to compine: gcc usingBug.cpp

gcc output:
usingBug.cpp:11: `A' is not a namespace
usingBug.cpp: In function `int main()':
usingBug.cpp:15: `B' undeclared (first use this function)
usingBug.cpp:15: (Each undeclared identifier is reported only once for each
   function it appears in.)
usingBug.cpp:15: parse error before `;' token


>Fix:
work around:
// BEGIN: usingFixed.cpp
class A
{
public:
	class B
	{

	};
};

int main()
{
	A::B b;

	return 0;
}
// END: usingFixed.cpp

>Release-Note:
>Audit-Trail:
>Unformatted:


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2001-07-01  7:57 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-06-26  9:26 c++/3333: Using declaration doesn't work with classes Martin Sebor
  -- strict thread matches above, loose matches on Subject: below --
2001-07-01  7:57 nathan
2001-06-21  8:46 aroach

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).