From -1715313196983114225
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: f78e5,307cbe6f0ea2ccd3
X-Google-Attributes: gidf78e5,public
X-Google-ArrivalTime: 2003-06-10 11:22:50 PST
Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!kibo.news.demon.net!mutlu.news.demon.net!demon!mail2news.demon.co.uk!devnull
From: francis@robinton.demon.co.uk (Francis Glassborow)
Newsgroups: comp.std.c++
Subject: Re: Recommendation to the Standards Committee
Date: Tue, 10 Jun 2003 18:22:49 +0000 (UTC)
Organization: Southfield Microcomputer SS
Lines: 44
Approved: fjh@cs.mu.oz.au (Fergus Henderson , moderator of comp.std.c++)
Message-ID: <k+yc72ENhb5+EweX@robinton.demon.co.uk>
References: <ohQDa.44053$4_1.12732776@twister.nyc.rr.com>
 <_ULEa.10852$KF1.271850@amstwist00> <3EE50908.9060202@hotmail.com>
Mime-Version: 1.0
Content-Type: text/plain;charset=us-ascii;format=flowed
X-Trace: mail2news.demon.co.uk 1055269369 22947 10.0.0.1 (10 Jun 2003 18:22:49 GMT)
X-Complaints-To: abuse@demon.net
NNTP-Posting-Date: Tue, 10 Jun 2003 18:22:49 +0000 (UTC)
X-Received: from mulga.cs.mu.oz.au ([128.250.1.22])
	by news.demon.co.uk with esmtp (Exim 4.12)
	id 19Pnlg-0005xp-00
	for mail2news@news.news.demon.net; Tue, 10 Jun 2003 18:22:48 +0000
X-Received: from localhost (localhost [[UNIX: localhost]]) by mulga.cs.mu.OZ.AU
	id EAA04785; Wed, 11 Jun 2003 04:22:43 +1000 (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++@ucar.edu
X-Newsgroups: comp.std.c++
X-User-Agent: Turnpike/6.02-U (<TilyaeicE$WmMOP9F8P4$y3lmP>)
X-Spam-Status: No, hits=-5.9 required=5.0
	tests=NOSPAM_INC,REFERENCES,SATISFACTION,SIGNATURE_SHORT_DENSE,
	      SPAM_PHRASE_00_01,USER_AGENT
	version=2.41
Xref: archiver1.google.com comp.std.c++:19674

In article <3EE50908.9060202@hotmail.com>, Andrey Tarasevich 
<andreytarasevich@hotmail.com> writes
>Yeah, but it looks like the main point of the method Brian is using is that
>the guarding '#ifndef'/'#endif' is placed _outside_ the header file. In this
>case the preprocessor doesn't even have to search for already included
>files, open them or try parsing them. The '#once' solution doesn't help in
>this case, since '#once' directive is supposed to be specified _inside_
>header files. From this respect '#once' is not much different from the
>standard  "internal '#ifndef'/'#define'/'#endif' approach". But it looks
>like Brian is not satisfied with the latter. Under this circumstances, I
>don't think he will be satisfied with any other "internal" solution.

But I do not understand the problem. Only the designer of a header file 
can know if it should or should not be multiply included into a TU.

Being able to write:

#once

at the start of a header file would solve the problem because compilers 
would then read the file the first time, mark it as read in its tables 
and not try to read it again.

Another solution would be to make header files default to single 
inclusion per TU and provide a

#multiple

directive that over-ruled the default and required the compiler to 
re-read the file each time it is included (sort of the pre-processor 
equivalent of volatile).

-- 
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.jamesd.demon.co.uk/csc/faq.html                       ]



