[libcxx-commits] [PATCH] D76636: [RFC] Added type trait to remove address space qualifier from type

John McCall via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Tue Mar 24 14:34:11 PDT 2020

rjmccall added a comment.

Address spaces are actually defined in a number of standardized C extensions that are compatible with C++, such as the Embedded C specification, OpenCL, and so on.  There's precedent for libc++ accepting work that supports this kind of C++-compatible extension in the past; for example, `std::is_pointer` looks through Objective-C's ARC type qualifiers.  That said, (1) libc++ hasn't actually added new traits for such things before, just taught existing traits to handle them, and (2) I think this definition wouldn't actually work for cases like the OpenCL address spaces because they're not expressible as `__attribute__((address_space(N)))`.  (2) is fixable; (1) may be a reasonable place to draw the line on policy.



More information about the libcxx-commits mailing list