This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: c++/9230: Friend definitions in template classes
- From: Gabriel Dos Reis <gdr at integrable-solutions dot net>
- To: reichelt at igpm dot rwth-aachen dot de
- Cc: bangerth at ticam dot utexas dot edu, gcc-bugs at gcc dot gnu dot org, gcc-prs at gcc dot gnu dot org, nobody at gcc dot gnu dot org, gcc-gnats at gcc dot gnu dot org
- Date: 08 Jan 2003 20:07:15 +0100
- Subject: Re: c++/9230: Friend definitions in template classes
- Organization: Integrable Solutions
- References: <20030108171434.13498.qmail@sources.redhat.com>
reichelt@igpm.rwth-aachen.de writes:
| Synopsis: Friend definitions in template classes
|
| State-Changed-From-To: open->feedback
| State-Changed-By: reichelt
| State-Changed-When: Wed Jan 8 09:14:33 2003
| State-Changed-Why:
| As I read paragraph 14.6.5.1 in the standard, this is the expected behavior:
|
| > Friend classes or functions can be declared within a class template. When
| > a template is instantiated, the names of its friends are treated as if
| > the specialization had been explicitly declared at its point of instantiation.
Declared *where*?
| Convinced, Wolfgang?
I'm not Wolfgang but I'm not convinced. Read on 14.6.5/2:
As with non-template classes, the names of namespace-scope friend
functions of a class template special-ization are not visible during
an ordinary lookup unless explicitly declared at namespace scope
(11.4). Such names may be found under the rules for associated
classes (3.4.2).
-- Gaby