Hi,
Has any thought been given to putting the feature-test macros into an implementation-supplied header, instead of predefining them? This would allow us to remove the cost associated with predefining these macros, for translation units which don't need them. Instead, we could supply a single predefined macro indicating whether the header is available, and user code would write something like:
#ifdef __cpp_lib_header_features
#include <features>
#endif
#ifdef __cpp_relaxed_constexpr
constexpr
#endif
size_t strlen(const char *p) { /* ... */ }
... and so on.