RTTI data member names, NTBS COMDAT

Martin von Loewis loewis at informatik.hu-berlin.de
Thu Aug 31 08:38:13 UTC 2000


> Does anyone else have a comment on this issue?  Who suggested making
> RTTI names non-normative?  Why?

I think the way it is now, the names are quite clumsy to use, due to
the underscore business. So I propose two alternatives:

1. make them non-normative. That leaves implementations the choice to
   expose them under more convenient names, or not to expose them.

2. Review the decision to make use of reserved namespace.

I'd like to argue in favour of option 2. Reserved names are necessary
to avoid conflicts for strict conformance in the following situations:

1. During linking, there may be conflicts with other symbols
2. On the source level, there may be conflicts with other names in the
   same scope.
3. There may be conflicts with preprocessor symbols.

Item 1 and item 2 are a non-issue. The names are already in the ABI
namespace, which has a reserved name in itself. So all names inside
that namespace automatically get a reserverd mangled name, and cannot
interfere with other names.

Item 3 is not a problem, because these names are available only
through cxxabi.h. Programs using that header are not strictly
conforming, and must play by the rules imposed by that header, namely,
not use these names as preprocessor symbols.

In short, my proposal is to remove the __ in all places, then make the
fields public.

Regards,
Martin




More information about the cxx-abi-dev mailing list