[PATCH] D56750: Implement feature test macros using a script.

Eric Fiselier via Phabricator reviews at reviews.llvm.org
Tue Jan 15 15:34:38 PST 2019


EricWF created this revision.
EricWF added a reviewer: mclow.lists.
Herald added a reviewer: jfb.
Herald added a subscriber: jfb.
Herald added a reviewer: serge-sans-paille.

This patch implements all the feature test macros libc++ currently supports, as specified by the standard or cppreference prior to C++2a.

The tests and `<version>` header are generated using a script. The script contains a table of each feature test macro, the headers it should be accessible from, and its values of each dialect of C++.
When a new feature test macro is added or needed, the table should be updated and the script re-run.


Repository:
  rCXX libc++

https://reviews.llvm.org/D56750

Files:
  include/version
  test/std/language.support/support.limits/support.limits.general/algorithm.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/any.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/array.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/atomic.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/bit.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/chrono.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/cmath.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/compare.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/complex.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/cstddef.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/deque.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/exception.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/filesystem.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/forward_list.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/functional.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/generate_feature_test_macro_tests.py
  test/std/language.support/support.limits/support.limits.general/iomanip.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/istream.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/iterator.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/limits.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/list.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/locale.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/map.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/memory.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/mutex.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/new.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/numeric.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/optional.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/ostream.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/regex.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/scoped_allocator.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/set.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/shared_mutex.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/string.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/string_view.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/tuple.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/type_traits.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/unordered_map.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/unordered_set.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/utility.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/variant.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/vector.version.pass.cpp
  test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp
  test/support/test_macros.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D56750.181903.patch
Type: text/x-patch
Size: 313194 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20190115/9ae52351/attachment-0001.bin>


More information about the libcxx-commits mailing list