1//===----------------------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// WARNING: This test was generated by generate_feature_test_macro_components.py
10// and should not be edited manually.
11//
12// clang-format off
13
14// UNSUPPORTED: no-localization
15
16// <ostream>
17
18// Test the feature test macros defined by <ostream>
19
20/* Constant Value
21 __cpp_lib_char8_t 201907L [C++20]
22 __cpp_lib_print 202207L [C++23]
23*/
24
25#include <ostream>
26#include "test_macros.h"
27
28#if TEST_STD_VER < 14
29
30# ifdef __cpp_lib_char8_t
31# error "__cpp_lib_char8_t should not be defined before c++20"
32# endif
33
34# ifdef __cpp_lib_print
35# error "__cpp_lib_print should not be defined before c++23"
36# endif
37
38#elif TEST_STD_VER == 14
39
40# ifdef __cpp_lib_char8_t
41# error "__cpp_lib_char8_t should not be defined before c++20"
42# endif
43
44# ifdef __cpp_lib_print
45# error "__cpp_lib_print should not be defined before c++23"
46# endif
47
48#elif TEST_STD_VER == 17
49
50# ifdef __cpp_lib_char8_t
51# error "__cpp_lib_char8_t should not be defined before c++20"
52# endif
53
54# ifdef __cpp_lib_print
55# error "__cpp_lib_print should not be defined before c++23"
56# endif
57
58#elif TEST_STD_VER == 20
59
60# if defined(__cpp_char8_t)
61# ifndef __cpp_lib_char8_t
62# error "__cpp_lib_char8_t should be defined in c++20"
63# endif
64# if __cpp_lib_char8_t != 201907L
65# error "__cpp_lib_char8_t should have the value 201907L in c++20"
66# endif
67# else
68# ifdef __cpp_lib_char8_t
69# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!"
70# endif
71# endif
72
73# ifdef __cpp_lib_print
74# error "__cpp_lib_print should not be defined before c++23"
75# endif
76
77#elif TEST_STD_VER == 23
78
79# if defined(__cpp_char8_t)
80# ifndef __cpp_lib_char8_t
81# error "__cpp_lib_char8_t should be defined in c++23"
82# endif
83# if __cpp_lib_char8_t != 201907L
84# error "__cpp_lib_char8_t should have the value 201907L in c++23"
85# endif
86# else
87# ifdef __cpp_lib_char8_t
88# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!"
89# endif
90# endif
91
92# ifndef __cpp_lib_print
93# error "__cpp_lib_print should be defined in c++23"
94# endif
95# if __cpp_lib_print != 202207L
96# error "__cpp_lib_print should have the value 202207L in c++23"
97# endif
98
99#elif TEST_STD_VER > 23
100
101# if defined(__cpp_char8_t)
102# ifndef __cpp_lib_char8_t
103# error "__cpp_lib_char8_t should be defined in c++26"
104# endif
105# if __cpp_lib_char8_t != 201907L
106# error "__cpp_lib_char8_t should have the value 201907L in c++26"
107# endif
108# else
109# ifdef __cpp_lib_char8_t
110# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!"
111# endif
112# endif
113
114# ifndef __cpp_lib_print
115# error "__cpp_lib_print should be defined in c++26"
116# endif
117# if __cpp_lib_print != 202207L
118# error "__cpp_lib_print should have the value 202207L in c++26"
119# endif
120
121#endif // TEST_STD_VER > 23
122
123

source code of libcxx/test/std/language.support/support.limits/support.limits.general/ostream.version.compile.pass.cpp