From 6846334345528410271
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: f78e5,47ad86575b18887f
X-Google-Attributes: gidf78e5,public
X-Google-ArrivalTime: 2001-07-18 11:11:01 PST
Path: archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!skynet.be!dispose.news.demon.net!news.demon.co.uk!demon!mail2news.demon.co.uk!not-for-mail
From: Francis Glassborow <francis.glassborow@ntlworld.com>
Newsgroups: comp.std.c++
Subject: Re: unnamed namespace quesion
Date: Wed, 18 Jul 2001 18:10:36 GMT
Organization: Southfield Microcomputer SS
Approved: Fergus Henderson <fjh@cs.mu.oz.au>, moderator of comp.std.c++
Message-ID: <b+QzDXARHdV7EwMg@ntlworld.com>
References: <JhK47.359227$p33.7267027@news1.sttls1.wa.home.com>
 <3B54E127.E35402FF@wizard.net>
 <%9657.11405$Up.339914@sea-read.news.verio.net>
Reply-To: Francis Glassborow <francisG@robinton.demon.co.uk>
X-Trace: mail2news.demon.co.uk 995479841 mail2news:28309 mail2news mail2news.demon.co.uk
X-Complaints-To: abuse@demon.net
X-Mail2News-Path: news.demon.net!mulga.cs.mu.oz.au
X-Authentication-Warning: mulga.cs.mu.OZ.AU: fjh set sender to devnull@stump.algebra.com using -f
X-Robomod: STUMP, ichudov@algebra.com (Igor Chudov)
MIME-Version: 1.0
X-Newsreader: Turnpike Integrated Version 5.00 U <TilyaeicE$WmMOP9F8P4$y3lmP>
Lines: 50
Xref: archiver1.google.com comp.std.c++:6609

In article <%9657.11405$Up.339914@sea-read.news.verio.net>, C. M. Heard
<heard@vvnet.com> writes
>That's incorrect.  Namespace scope objects are deprecated, but namespace
>scope functions are are not.  Interestingly, core language issues #167
>and #174 suggested that this be rectified, but in opposite ways:  #167
>proposed to deprecate namespace scope static functions, while #174 proposed
>to reverse the deprecation of namespace scope static objects.  Both of
>these have been subsumed under issue #223.
>
>Mike
>
>P.S.  I happen to agree with Mr. Mensonides and with the proposal in core
>language issue #174.  It's not at all obvious to me why declaring namespace
>scope static functions or objects is a bad thing to do  (other than,
>perhaps, the unintuitive overloading of the word "static").

I think you meant 'filescope' in several places where you wrote
'namespace scope'.

Two features of declarations in the anonymous namespace should be noted.
The first is that such items have extern linkage. That can be important
because some templates require template parameters with extern linkage.

The second is that it is the only way that we can declare a class that
will only be visible at filescope. I am greatly in favour of consistency
and so would advocate that those writing declarations that need to have
restricted visibility (restricted to filescope) should put all of them
in an anonymous namespace.

This also, I think, demonstrates why the definitions of functions
declared in an anonymous namspace must also be lexically in such that
same namespace. Trying to define them at filescope will result in either
internal linkage (if you qualify them as static) or global visibility if
you do not.

Of course we could change the linkage rules but I do not think I am the
only one who dislikes special cases.


Francis Glassborow      ACCU
64 Southfield Rd
Oxford OX4 1PA          +44(0)1865 246490
All opinions are mine and do not represent those of any organisation

---
[ 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.research.att.com/~austern/csc/faq.html                ]



