3 ms·
It checks if a non standard feature is available, otherwise falls back to a standard implementation. My argument was that it was possible to implement it with
by fooker 8y ago
It checks if a non standard feature is available, otherwise falls back to a standard implementation.
My argument was that it was possible to implement it with standard C++.
- Kranar 8y agoThere's no way to implement that type trait using standard C++. The implementation does check if a non-standard feature is available, and if not it delegates to is_scalar which in turn delegates to is_enum which in turn delegates to is_union. is_union can not be implemented in a standard conforming manner without compiler support and libc++ unconditionally returns false if compiler support is not available, which does not conform to the standard.