From: Peter Dimov (pdimov_at_[hidden])
Date: 2001-11-13 14:22:36
From: "Mattias Flodin" <flodin_at_[hidden]>
> Hmmm, on the other hand, to quote Stroustrup from TC++PL section 4.9.3:
> "Names starting with an underscore are reserved for special facilities in
> the implementation and the run-time environment, so such names should not
> be used in application programs."
> I am not sure whether this rule actually made it into the standard, since
> my copy of the book was printed before it (and I have yet to find the
> finances to buy an actual copy of the ISO/ANSI standard).
The actual rule is "no double underscores, no leading underscore followed by
uppercase letter, and no leading underscore at the global namespace."
Of course in a book that teaches C++ you'll prefer the simpler version. It's
like saying "no lowercase macros." Some lowercase macros are OK, but
others - like 'begin', or 'min' - are not. It's better to keep the rules
> nevertheless, I think it would be best not to ignore such direct words
> from Stroustrup; if nothing else, it would most likely cause dismay
> if/when this is introduced to the standards commitee.
The standards committee can use whatever names it wants. ;-)
> How about bind_1, or boost_1, or just follow the lambda libraries'
> convention of free1, free1 etc?
Actually lambda recently switched to _1 as well.
Of course if the _1 notation causes significant problems we'll have to -
reluctantly - drop it.
-- Peter Dimov Multi Media Ltd.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk