1 // { dg-do compile { target c++98_only } }
2 
3 //  C++11 features:
4 
5 #ifndef __cpp_runtime_arrays
6 #  error "__cpp_runtime_arrays" // { dg-error "error" }
7 #endif
8 
9 #ifndef __cpp_unicode_characters
10 #  error "__cpp_unicode_characters" // { dg-error "error" }
11 #endif
12 
13 #ifndef __cpp_raw_strings
14 #  error "__cpp_raw_strings" // { dg-error "error" }
15 #endif
16 
17 #ifndef __cpp_unicode_literals
18 #  error "__cpp_unicode_literals" // { dg-error "error" }
19 #endif
20 
21 #ifndef __cpp_user_defined_literals
22 #  error "__cpp_user_defined_literals" // { dg-error "error" }
23 #endif
24 
25 #ifndef __cpp_lambdas
26 #  error "__cpp_lambdas" // { dg-error "error" }
27 #endif
28 
29 #ifndef __cpp_constexpr
30 #  error "__cpp_constexpr" // { dg-error "error" }
31 #endif
32 
33 #ifndef __cpp_static_assert
34 #  error "__cpp_static_assert" // { dg-error "error" }
35 #endif
36 
37 #ifndef __cpp_decltype
38 #  error "__cpp_decltype" // { dg-error "error" }
39 #endif
40 
41 #ifndef __cpp_attributes
42 #  error "__cpp_attributes" // { dg-error "error" }
43 #endif
44 
45 #ifndef __cpp_rvalue_references
46 #  error "__cpp_rvalue_references" // { dg-error "error" }
47 #endif
48 
49 #ifndef __cpp_variadic_templates
50 #  error "__cpp_variadic_templates" // { dg-error "error" }
51 #endif
52 
53 #ifndef __cpp_initializer_lists
54 #  error "__cpp_initializer_lists" // { dg-error "error" }
55 #endif
56 
57 #ifndef __cpp_delegating_constructors
58 #  error "__cpp_delegating_constructors" // { dg-error "error" }
59 #endif
60 
61 #ifndef __cpp_nsdmi
62 #  error "__cpp_nsdmi" // { dg-error "error" }
63 #endif
64 
65 #ifndef __cpp_inheriting_constructors
66 #  error "__cpp_inheriting_constructors" // { dg-error "error" }
67 #endif
68 
69 #ifndef __cpp_ref_qualifiers
70 #  error "__cpp_ref_qualifiers" // { dg-error "error" }
71 #endif
72 
73 #ifndef __cpp_alias_templates
74 #  error "__cpp_alias_templates" // { dg-error "error" }
75 #endif
76 
77 // C++14 features:
78 
79 // C++98 gets binary literals in non-ANSI modes.
80 //#ifndef __cpp_binary_literals
81 //#  error "__cpp_binary_literals"
82 //#endif
83 
84 #ifndef __cpp_init_captures
85 #  error "__cpp_init_captures" // { dg-error "error" }
86 #endif
87 
88 #ifndef __cpp_generic_lambdas
89 #  error "__cpp_generic_lambdas" // { dg-error "error" }
90 #endif
91 
92 #ifndef __cpp_decltype_auto
93 #  error "__cpp_decltype_auto" // { dg-error "error" }
94 #endif
95 
96 #ifndef __cpp_return_type_deduction
97 #  error "__cpp_return_type_deduction" // { dg-error "error" }
98 #endif
99 
100 #ifndef __cpp_aggregate_nsdmi
101 #  error "__cpp_aggregate_nsdmi" // { dg-error "error" }
102 #endif
103 
104 #ifndef __cpp_variable_templates
105 #  error "__cpp_variable_templates" // { dg-error "error" }
106 #endif
107 
108 #ifndef __cpp_digit_separators
109 #  error "__cpp_digit_separators" // { dg-error "error" }
110 #endif
111 
112 #ifndef __cpp_sized_deallocation
113 #  error "__cpp_sized_deallocation" // { dg-error "error" }
114 #endif
115 
116 // C++17 features:
117 
118 #ifndef __cpp_namespace_attributes
119 #  error "__cpp_namespace_attributes" // { dg-error "error" }
120 #endif
121 
122 #ifndef __cpp_nested_namespace_definitions
123 #  error "__cpp_nested_namespace_definitions" // { dg-error "error" }
124 #endif
125 
126 //  C++11 attributes:
127 
128 #ifdef __has_cpp_attribute
129 #  if __has_cpp_attribute(noreturn) == 200809
130 #    error "__has_cpp_attribute(noreturn) == 200809" // { dg-error "error" }
131 #  endif
132 #else
133 #  error "__has_cpp_attribute"
134 #endif
135 
136 //  Attribute carries_dependency not in yet.
137 //#ifdef __has_cpp_attribute
138 //#  if __has_cpp_attribute(carries_dependency) == 200809
139 //#    error "__has_cpp_attribute(carries_dependency) == 200809" // {  }
140 //#  endif
141 //#else
142 //#  error "__has_cpp_attribute"
143 //#endif
144 
145 //  C++14 attributes:
146 
147 //  Attribute [[deprecated]] is allowed in C++11 as an extension.
148 //#ifdef __has_cpp_attribute
149 //#  if __has_cpp_attribute(deprecated) == 201309
150 //#    error "__has_cpp_attribute(deprecated)" // {  }
151 //#  endif
152 //#else
153 //#  error "__has_cpp_attribute"
154 //#endif
155