Libc++ still uses per-feature configuration macros when configuring for C++11. However libc++ requires a feature-complete C++11 compiler so there is no reason to check individual features. This patch starts the process of removing the feature specific macros and replacing their usage with _LIBCPP_CXX03_LANG.
This patch removes the __config macros:
- _LIBCPP_HAS_NO_TRAILING_RETURN
- _LIBCPP_HAS_NO_TEMPLATE_ALIASES
- _LIBCPP_HAS_NO_ADVANCED_SFINAE
- _LIBCPP_HAS_NO_DEFAULT_FUNCTION_TEMPLATE_ARGS
- _LIBCPP_HAS_NO_STATIC_ASSERT
As a drive I also changed our C++03 static_assert to use _Static_assert if available.
I plan to commit this without review if nobody voices an objection.