Files
libcxx/test/std/language.support/support.limits/support.limits.general/optional.version.pass.cpp
Eric Fiselier a8b9f59e8c 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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@351286 91177308-0d34-0410-b5e6-96231b3b80d8
2019-01-16 01:37:43 +00:00

57 lines
1.4 KiB
C++

//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is dual licensed under the MIT and the University of Illinois Open
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// WARNING: This test was generated by generate_feature_test_macros_tests.py and
// should not be edited manually.
// <optional>
// Test the feature test macros defined by <optional>
/* Constant Value
__cpp_lib_optional 201606L [C++17]
*/
#include <optional>
#include "test_macros.h"
#if TEST_STD_VER < 14
# ifdef __cpp_lib_optional
# error "__cpp_lib_optional should not be defined before c++17"
# endif
#elif TEST_STD_VER == 14
# ifdef __cpp_lib_optional
# error "__cpp_lib_optional should not be defined before c++17"
# endif
#elif TEST_STD_VER == 17
# ifndef __cpp_lib_optional
# error "__cpp_lib_optional should be defined in c++17"
# endif
# if __cpp_lib_optional != 201606L
# error "__cpp_lib_optional should have the value 201606L in c++17"
# endif
#elif TEST_STD_VER > 17
# ifndef __cpp_lib_optional
# error "__cpp_lib_optional should be defined in c++2a"
# endif
# if __cpp_lib_optional != 201606L
# error "__cpp_lib_optional should have the value 201606L in c++2a"
# endif
#endif // TEST_STD_VER > 17
int main() {}