Implement feature test macros using a script.
authorEric Fiselier <eric@efcs.ca>
Wed, 16 Jan 2019 01:37:43 +0000 (01:37 +0000)
committerEric Fiselier <eric@efcs.ca>
Wed, 16 Jan 2019 01:37:43 +0000 (01:37 +0000)
commit32784a740a0282dc6f4390b683ed6c6516f4d66c
tree04747397f1cf0d73d679572ce709ab61df6776da
parent56c587adfd2999a5f096cf49266552de931aa1e3
Implement feature test macros using a script.

Summary:
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.

Reviewers: mclow.lists, jfb, serge-sans-paille

Reviewed By: mclow.lists

Subscribers: arphaman, jfb, ldionne, libcxx-commits

Differential Revision: https://reviews.llvm.org/D56750

llvm-svn: 351286
48 files changed:
libcxx/docs/DesignDocs/FeatureTestMacros.rst [new file with mode: 0644]
libcxx/docs/FeatureTestMacroTable.rst [new file with mode: 0644]
libcxx/docs/index.rst
libcxx/include/version
libcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/any.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/array.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/bit.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/chrono.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/cmath.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/compare.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/complex.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/cstddef.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/deque.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/exception.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/filesystem.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/functional.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/generate_feature_test_macro_components.py [new file with mode: 0755]
libcxx/test/std/language.support/support.limits/support.limits.general/iomanip.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/istream.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/iterator.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/limits.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/list.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/locale.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/map.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/memory.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/mutex.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/new.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/numeric.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/optional.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/ostream.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/regex.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/scoped_allocator.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/set.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/shared_mutex.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/string.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/type_traits.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/unordered_set.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/variant.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp
libcxx/test/support/test_macros.h