This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 06/29/2017 09:56 AM, Joseph Myers wrote:
On Wed, 28 Jun 2017, Martin Sebor wrote:The more limited interfaces could, of course, be __typeof_noqual in some form.Actually, despite what I've been arguing, I agree. I've come to realize that what makes me uneasy about it is its name: it makes it sound like a special purpose flavor of __typeof__, when it really is a general purpose __remove_qualifiers trait. How does renaming it to something like that sound?__typeof__ makes clear that it returns a type, whether given a type or an expression. Can __remove_qualifiers be applied to an expression, and, if so, what does it do - return a type, or return the result of converting the expression to the corresponding type with whatever qualifiers removed?
The C++ traits primitives (https://gcc.gnu.org/onlinedocs/gcc/Type-Traits.html) work on types, not expressions, so I would suggest to have __remove_qualifiers (and the related __remove_const et al., if they should be added) follow the same approach. Martin PS There are at least a couple of traits on the list above that would be useful in C as well (__is_enum and __is_union, and maybe also __underlying_type).
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |