1 // RUN: %clang_cc1 -E -std=c++11 %s -o - | FileCheck --check-prefix=CHECK-0X %s 2 // RUN: %clang_cc1 -E %s -o - | FileCheck --check-prefix=CHECK-NO-0X %s 3 4 #if __has_feature(cxx_lambdas) 5 int has_lambdas(); 6 #else 7 int no_lambdas(); 8 #endif 9 10 // CHECK-0X: no_lambdas 11 // CHECK-NO-0X: no_lambdas 12 13 14 #if __has_feature(cxx_nullptr) 15 int has_nullptr(); 16 #else 17 int no_nullptr(); 18 #endif 19 20 // CHECK-0X: has_nullptr 21 // CHECK-NO-0X: no_nullptr 22 23 24 #if __has_feature(cxx_decltype) 25 int has_decltype(); 26 #else 27 int no_decltype(); 28 #endif 29 30 // CHECK-0X: has_decltype 31 // CHECK-NO-0X: no_decltype 32 33 34 #if __has_feature(cxx_auto_type) 35 int has_auto_type(); 36 #else 37 int no_auto_type(); 38 #endif 39 40 // CHECK-0X: has_auto_type 41 // CHECK-NO-0X: no_auto_type 42 43 44 #if __has_feature(cxx_trailing_return) 45 int has_trailing_return(); 46 #else 47 int no_trailing_return(); 48 #endif 49 50 // CHECK-0X: has_trailing_return 51 // CHECK-NO-0X: no_trailing_return 52 53 54 #if __has_feature(cxx_attributes) 55 int has_attributes(); 56 #else 57 int no_attributes(); 58 #endif 59 60 // CHECK-0X: has_attributes 61 // CHECK-NO-0X: no_attributes 62 63 64 #if __has_feature(cxx_static_assert) 65 int has_static_assert(); 66 #else 67 int no_static_assert(); 68 #endif 69 70 // CHECK-0X: has_static_assert 71 // CHECK-NO-0X: no_static_assert 72 73 #if __has_feature(cxx_deleted_functions) 74 int has_deleted_functions(); 75 #else 76 int no_deleted_functions(); 77 #endif 78 79 // CHECK-0X: has_deleted_functions 80 // CHECK-NO-0X: no_deleted_functions 81 82 83 #if __has_feature(cxx_rvalue_references) 84 int has_rvalue_references(); 85 #else 86 int no_rvalue_references(); 87 #endif 88 89 // CHECK-0X: has_rvalue_references 90 // CHECK-NO-0X: no_rvalue_references 91 92 93 #if __has_feature(cxx_variadic_templates) 94 int has_variadic_templates(); 95 #else 96 int no_variadic_templates(); 97 #endif 98 99 // CHECK-0X: has_variadic_templates 100 // CHECK-NO-0X: no_variadic_templates 101 102 103 #if __has_feature(cxx_inline_namespaces) 104 int has_inline_namespaces(); 105 #else 106 int no_inline_namespaces(); 107 #endif 108 109 // CHECK-0X: has_inline_namespaces 110 // CHECK-NO-0X: no_inline_namespaces 111 112 113 #if __has_feature(cxx_range_for) 114 int has_range_for(); 115 #else 116 int no_range_for(); 117 #endif 118 119 // CHECK-0X: has_range_for 120 // CHECK-NO-0X: no_range_for 121 122 123 #if __has_feature(cxx_reference_qualified_functions) 124 int has_reference_qualified_functions(); 125 #else 126 int no_reference_qualified_functions(); 127 #endif 128 129 // CHECK-0X: has_reference_qualified_functions 130 // CHECK-NO-0X: no_reference_qualified_functions 131 132 #if __has_feature(cxx_default_function_template_args) 133 int has_default_function_template_args(); 134 #else 135 int no_default_function_template_args(); 136 #endif 137 138 // CHECK-0X: has_default_function_template_args 139 // CHECK-NO-0X: no_default_function_template_args 140 141 #if __has_feature(cxx_noexcept) 142 int has_noexcept(); 143 #else 144 int no_noexcept(); 145 #endif 146 147 // CHECK-0X: has_noexcept 148 // CHECK-NO-0X: no_noexcept 149 150 #if __has_feature(cxx_override_control) 151 int has_override_control(); 152 #else 153 int no_override_control(); 154 #endif 155 156 // CHECK-0X: has_override_control 157 // CHECK-NO-0X: no_override_control 158 159 #if __has_feature(cxx_alias_templates) 160 int has_alias_templates(); 161 #else 162 int no_alias_templates(); 163 #endif 164 165 // CHECK-0X: has_alias_templates 166 // CHECK-NO-0X: no_alias_templates 167 168 #if __has_feature(cxx_implicit_moves) 169 int has_implicit_moves(); 170 #else 171 int no_implicit_moves(); 172 #endif 173 174 // CHECK-0X: has_implicit_moves 175 // CHECK-NO-0X: no_implicit_moves 176 177 #if __has_feature(cxx_alignas) 178 int has_alignas(); 179 #else 180 int no_alignas(); 181 #endif 182 183 // CHECK-0X: has_alignas 184 // CHECK-NO-0X: no_alignas 185