This is the mail archive of the
mailing list for the libstdc++ project.
Re: [Patch] Fix libstdc++/7744
On Mon, Mar 10, 2003 at 06:22:53AM +0100, Gabriel Dos Reis wrote:
> Nathan Myers <ncm-nospam at cantrip dot org> writes:
> | On Mon, Mar 10, 2003 at 02:51:10AM +0100, Gabriel Dos Reis wrote:
> | > Nathan Myers <ncm-nospam at cantrip dot org> writes:
> | > | > http://gcc.gnu.org/ml/libstdc++/2003-03/msg00031.html
> | > | >
> | > | > In particular:
> | > | >
> | > | > >> >Finally, mustn't these members' names be uglified, e.g.
> | > | > >> >_M_no_block etc.?
> | > | > >> >
> | > | > >> The other members of __basic_file<char> aren't and I followed
> | > | > >> the existing practice. Should we change all of them?
> | > |
> | > | It really depends on whether these names come in with a standard
> | > | header file. If they do, then all the names have to be uglified.
> | > | My previous posting assumed that these classes were only visible
> | > | if users explicitly included the file they appear in, but now it
> | > | appears that they come in with <iostream>.
> | >
> | > Given that <iostream> can include any other standard header, any
> | > reserved name used by __basic_file<char> does not need to be
> | > uglified.
> | Please, let's not confuse matters any further. Of course standard
> | names don't have to be uglified. At issue are two other concerns:
> | 1. Overloading non-standard functions with standard names. This creates
> | unnecessary confusion, both in maintainers and users. If you give
> | the functions their own unique names, then you have...
> The issue in this specific context, as I understand it, is to use
> standard name in __basic_file<> context, i.e. member of __basic_file<>.
> Explain how that is creating confusion.
You are adding to the confusion because the discussion involves more
than just using a standard name. It involved overloading a standard
name. It also involved bringing in non-standard names. You did not
make clear, and have not made clear, your opinion on all the issues
> | 2. Non-standard names brought in with standard headers, such
> | (apparently) as the block() and no_block() members. Those have
> | to be uglified.
> I think, nobody has been disputing that fact.
Nobody except yourself. I don't think you meant to dispute it, but
your postings could easily be taken so. If you must jump into the
middle of the discussion, please be precise about what you are agreeing
to or retracting. If you are not precise, you add to the confusion.
If you meant to say that you feel it is entirely permissible, or not,
to declare a non-virtual streambuf member, e.g. "void overflow()" that
overloads the standard, virtual member, you must say so explicitly.
No amount of retraction will make your intentions clear.
Likewise, if you feel that declaring a member "block()" in a header
brought in by <iostream> must, or need not be, uglified, then please
say so. It is up to us, the readers, to say whether we find your
postings confusing. The best you can do is to express yourself
clearly and precisely, so there is no more room for misinterpretation.
ncm-nospam at cantrip dot org