Thoughts on __gnu_cxx
Gabriel Dos Reis
gdr@codesourcery.com
Fri Jan 25 20:48:00 GMT 2002
Phil Edwards <pedwards@dmapub.dma.org> writes:
[...]
| This is a bit of a dichotomy: users can't easily tell the difference
| between what's meant for them and what isn't. Uglification doesn't help
| them tell the difference, either: __gnu_cxx::__verbose_terminate_handler()
| is safe for users, but the name says otherwise.
That is what we have documentations for ;-). If a uglified name is
documented as an extension and usable in public code, then that it is.
| I suggest looking at the libsupc++ code, where
|
| - the implementation details are hidden in a '__cxxabiv1' namespace,
| - an alias is set up, "namespace abi = __cxxabiv1;", and
| - everything is accessed as abi::foo
You cannot use namespace-alias in an extension-namespace-definition.
| Some possibilities:
|
| Maybe we should leave the implemenation details in __gnu_cxx, and move
| the public extensions to 'gnu' or 'gnu_cxx'?
|
| Maybe we should leave everything in __gnu_cxx, and make gnu_cxx (or whatever)
| an alias?
But, concretely what are we supposed to gain?
I think documenting __gnu_cxx as containing implementations codes (not
supposed to be used in public code) and documented extensions usable
in public code should be sufficient.
-- Gaby
More information about the Libstdc++
mailing list