[PATCH] D24895: [libc++] Remove various C++03 feature test macros

Eric Fiselier via cfe-commits cfe-commits at lists.llvm.org
Sat Sep 24 16:42:54 PDT 2016


EricWF created this revision.
EricWF added a reviewer: mclow.lists.
EricWF added a subscriber: cfe-commits.

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.

https://reviews.llvm.org/D24895

Files:
  include/__config
  include/iterator
  include/memory
  include/ratio
  include/scoped_allocator
  include/type_traits
  test/std/containers/associative/map/map.cons/copy.pass.cpp
  test/std/containers/associative/multimap/multimap.cons/copy.pass.cpp
  test/std/containers/associative/multiset/multiset.cons/copy.pass.cpp
  test/std/containers/associative/set/set.cons/copy.pass.cpp
  test/std/containers/sequences/deque/deque.cons/copy.pass.cpp
  test/std/containers/sequences/forwardlist/forwardlist.cons/copy.pass.cpp
  test/std/containers/sequences/list/list.cons/copy.pass.cpp
  test/std/containers/unord/unord.map/unord.map.cnstr/copy.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.cnstr/copy.pass.cpp
  test/std/containers/unord/unord.multiset/unord.multiset.cnstr/copy.pass.cpp
  test/std/containers/unord/unord.set/unord.set.cnstr/copy.pass.cpp
  test/std/utilities/memory/allocator.traits/allocator.traits.members/allocate_hint.pass.cpp
  test/std/utilities/memory/allocator.traits/allocator.traits.members/construct.pass.cpp
  test/std/utilities/memory/allocator.traits/allocator.traits.members/destroy.pass.cpp
  test/std/utilities/memory/allocator.traits/allocator.traits.members/max_size.pass.cpp
  test/std/utilities/memory/allocator.traits/allocator.traits.members/select_on_container_copy_construction.pass.cpp
  test/std/utilities/memory/allocator.traits/rebind_traits.pass.cpp
  test/std/utilities/memory/pointer.traits/rebind.pass.cpp
  test/support/test_allocator.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D24895.72398.patch
Type: text/x-patch
Size: 35166 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160924/61aa5be4/attachment-0001.bin>


More information about the cfe-commits mailing list