No subject

Mark Mitchell mark at codesourcery.com
Wed Aug 2 22:58:59 UTC 2000


Jeffrey noticed that the ABI specifies that the ABI says that
std::type_info contains a public data member named `type_name'.  (This
is in section 2.9.5.3.)

That's bad, since type_name is in the user namespace and since
the type_info class is in the std namespace.  I think the definition
of type_info should say:

  class type_info {
      private:
       void *virtual_table;
       char *__type_name;
  };

There should probably also be a note that the names of private data
members are non-normative.

Also, I'm curious as to why we've made the data members of the RTTI
classes have names in the user namespace, but the classes themselves
have names not in the user namespace.  The net impact is that users
cannot include cxxabi.h without being careful about the names they
have defined, but they also have to use "__" to talk about the type
info classes.

--
Mark Mitchell                   mark at codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com




More information about the cxx-abi-dev mailing list