[cfe-dev] Keyword warnings in libc++'s type_traits and other headers
Howard Hinnant
howard.hinnant at gmail.com
Tue Dec 24 13:33:15 PST 2013
I believe Marshall and I are agreed that a prefix makes an identifier safer.
I believe this train headed off the rails when both Marshall and I interpreted this thread as saying that these rules only applied to libc++, and not to clang. clang can (and sonetimes does) also protect itself with prefixes.
I understand that sometimes clang has other constraints that force its choice of keywords.
Others must understand that prefixing the entire libc++ library is not in the cards. Nor is prefixing the entire C library on any OS, or the multitude of other OS headers. When conflicts are found, they are dealt with.
The underscored namespace (17.6.4.3 [reserved.names]) belongs to the OS, the C lib, the C++ library, and the compiler. Perhaps I wrongly interpreted the message "get out" somewhere. For now I will assume that I did. libc++ is not going to exit this namespace.
As __is_void et al. have apparently been co-existing for a couple years, this does not seem like an incredibly urgent issue. Nor do I believe it should be ignored.
I recommend we take a couple days off and come back ready to negotiate in good faith a solution to this specific problem. Personally I would like to learn just how much out of date:
http://clang.llvm.org/docs/LanguageExtensions.html#checks-for-type-traits
is, and see it brought up to date. The lack of documentation, and the inability to check for these intrinsics has me feeling a bit blind.
Howard
More information about the cfe-dev
mailing list