This is an archive of the discontinued LLVM Phabricator instance.

[libc++] Remove various C++03 feature test macros
ClosedPublic

Authored by EricWF on Sep 24 2016, 4:42 PM.

Details

Summary

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.

Diff Detail

Event Timeline

EricWF updated this revision to Diff 72398.Sep 24 2016, 4:42 PM
EricWF retitled this revision from to [libc++] Remove various C++03 feature test macros.
EricWF updated this object.
EricWF added a reviewer: mclow.lists.
EricWF added a subscriber: cfe-commits.
EricWF updated this revision to Diff 72410.Sep 24 2016, 8:39 PM

Actually remove _LIBCPP_HAS_NO_STATIC_ASSERT.

EricWF updated this revision to Diff 72411.Sep 24 2016, 8:41 PM

Fix merge conflicts.

This revision was automatically updated to reflect the committed changes.