From -3568606016859805039
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: f78e5,c42fc9ad8a4a8a45
X-Google-Attributes: gidf78e5,public
X-Google-ArrivalTime: 2003-01-20 15:53:26 PST
Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!kibo.news.demon.net!mutlu.news.demon.net!demon!mail2news.demon.co.uk!devnull
From: llewelly.@@xmission.dot.com (llewelly)
Newsgroups: comp.std.c++
Subject: Re: Lookup for operators in expressions 13.3.1.2
Date: Mon, 20 Jan 2003 23:53:22 +0000 (UTC)
Organization: The Illusory Sorting Algorithm
Lines: 38
Approved: fjh@cs.mu.oz.au (Fergus Henderson , moderator of comp.std.c++)
Message-ID: <86fzrnl8yj.fsf@Zorthluthik.foo>
References: <pprj2vgjdu35kj1bfi37fcld1p6h5fakbo@4ax.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Trace: mail2news.demon.co.uk 1043106802 25919 10.0.0.1 (20 Jan 2003 23:53:22 GMT)
X-Complaints-To: abuse@demon.net
NNTP-Posting-Date: Mon, 20 Jan 2003 23:53:22 +0000 (UTC)
X-Received: from mulga.cs.mu.oz.au ([128.250.1.22])
	by news.demon.co.uk with esmtp (Exim 4.05)
	id 18aljE-0006js-00
	for mail2news@news.news.demon.net; Mon, 20 Jan 2003 23:53:20 +0000
X-Received: by mulga.cs.mu.OZ.AU
	id KAA10389; Tue, 21 Jan 2003 10:52:43 +1100 (EST)
X-Authentication-Warning: mulga.cs.mu.OZ.AU: fjh set sender to devnull@stump.algebra.com using -f
X-Path: comp-std-cpp-robomod!not-for-mail
X-Robomod: STUMP, ichudov@algebra.com (Igor Chudov)
X-Delivered-To: std-c++@ncar.ucar.edu
X-Newsgroups: comp.std.c++
X-NNTP-Posting-Date: Mon, 20 Jan 2003 23:06:53 +0000 (UTC)
X-User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2
X-Spam-Status: No, hits=-10.3 required=5.0
	tests=EMAIL_ATTRIBUTION,NOSPAM_INC,QUOTED_EMAIL_TEXT,REFERENCES,
	      SPAM_PHRASE_00_01,USER_AGENT
	version=2.41
Xref: archiver1.google.com comp.std.c++:17301

gp1@paradise.net.nz (Graeme Prentice) writes:

> Regarding the expression a @ b where @ is an operator such as << and a
> has type T1
> 
> 13.3.1.2 para 3 bullet 1 says
> 
> If T1 is a class type, the set of member candidates is the result of the
> qualified lookup of T1::operator@ (13.3.1.1.1); otherwise, the set of
> member candidates is empty.
> 
> Does this mean that the class definiiton of T1 has to be visible or does
> it mean that if the lookup fails for whatever reason, the set of
> candidates is empty.
>
> For example if you write cout << "hello"; does the class definition for
> the type of cout have to be visible.

3.4.3.1/1 (Qualified name lookup, Class members):

# If the nested-name-specifier of a qualified-id nomintates a class,
# the name specified after the nested-name-specifier is looked up in
# the scope of the class (10.2) ... [sniped]

The paragraph then continutes to specify 3 exceptions, applying to
    destructors, conversion-type-ids, and template-ids, none of which
    seem relevant to your question.

So combining 13.3.1.2/3 with 3.4.3.1/1, I think the operator will be
    looked up in the scope of the class, whether it is 'visible' or
    not.

---
[ comp.std.c++ is moderated.  To submit articles, try just posting with ]
[ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.jamesd.demon.co.uk/csc/faq.html                       ]



