|
|
@@ -562,40 +562,38 @@ private:
|
|
|
"not errors." \
|
|
|
}
|
|
|
|
|
|
+#define FOR_EACH_C90_FEATURE(F) F(c_function_prototypes)
|
|
|
+
|
|
|
+#define FOR_EACH_C99_FEATURE(F) \
|
|
|
+ F(c_restrict) \
|
|
|
+ F(c_variadic_macros)
|
|
|
+
|
|
|
+#define FOR_EACH_C11_FEATURE(F) F(c_static_assert)
|
|
|
+
|
|
|
#define FOR_EACH_C_FEATURE(F) \
|
|
|
F(c_std_90) \
|
|
|
F(c_std_99) \
|
|
|
F(c_std_11) \
|
|
|
- F(c_function_prototypes) \
|
|
|
- F(c_restrict) \
|
|
|
- F(c_static_assert) \
|
|
|
- F(c_variadic_macros)
|
|
|
+ FOR_EACH_C90_FEATURE(F) \
|
|
|
+ FOR_EACH_C99_FEATURE(F) \
|
|
|
+ FOR_EACH_C11_FEATURE(F)
|
|
|
|
|
|
-#define FOR_EACH_CXX_FEATURE(F) \
|
|
|
- F(cxx_std_98) \
|
|
|
- F(cxx_std_11) \
|
|
|
- F(cxx_std_14) \
|
|
|
- F(cxx_std_17) \
|
|
|
- F(cxx_std_20) \
|
|
|
- F(cxx_aggregate_default_initializers) \
|
|
|
+#define FOR_EACH_CXX98_FEATURE(F) F(cxx_template_template_parameters)
|
|
|
+
|
|
|
+#define FOR_EACH_CXX11_FEATURE(F) \
|
|
|
F(cxx_alias_templates) \
|
|
|
F(cxx_alignas) \
|
|
|
F(cxx_alignof) \
|
|
|
F(cxx_attributes) \
|
|
|
- F(cxx_attribute_deprecated) \
|
|
|
F(cxx_auto_type) \
|
|
|
- F(cxx_binary_literals) \
|
|
|
F(cxx_constexpr) \
|
|
|
- F(cxx_contextual_conversions) \
|
|
|
F(cxx_decltype) \
|
|
|
- F(cxx_decltype_auto) \
|
|
|
F(cxx_decltype_incomplete_return_types) \
|
|
|
F(cxx_default_function_template_args) \
|
|
|
F(cxx_defaulted_functions) \
|
|
|
F(cxx_defaulted_move_initializers) \
|
|
|
F(cxx_delegating_constructors) \
|
|
|
F(cxx_deleted_functions) \
|
|
|
- F(cxx_digit_separators) \
|
|
|
F(cxx_enum_forward_declarations) \
|
|
|
F(cxx_explicit_conversions) \
|
|
|
F(cxx_extended_friend_declarations) \
|
|
|
@@ -603,11 +601,9 @@ private:
|
|
|
F(cxx_final) \
|
|
|
F(cxx_func_identifier) \
|
|
|
F(cxx_generalized_initializers) \
|
|
|
- F(cxx_generic_lambdas) \
|
|
|
F(cxx_inheriting_constructors) \
|
|
|
F(cxx_inline_namespaces) \
|
|
|
F(cxx_lambdas) \
|
|
|
- F(cxx_lambda_init_captures) \
|
|
|
F(cxx_local_type_template_args) \
|
|
|
F(cxx_long_long_type) \
|
|
|
F(cxx_noexcept) \
|
|
|
@@ -617,22 +613,41 @@ private:
|
|
|
F(cxx_range_for) \
|
|
|
F(cxx_raw_string_literals) \
|
|
|
F(cxx_reference_qualified_functions) \
|
|
|
- F(cxx_relaxed_constexpr) \
|
|
|
- F(cxx_return_type_deduction) \
|
|
|
F(cxx_right_angle_brackets) \
|
|
|
F(cxx_rvalue_references) \
|
|
|
F(cxx_sizeof_member) \
|
|
|
F(cxx_static_assert) \
|
|
|
F(cxx_strong_enums) \
|
|
|
- F(cxx_template_template_parameters) \
|
|
|
F(cxx_thread_local) \
|
|
|
F(cxx_trailing_return_types) \
|
|
|
F(cxx_unicode_literals) \
|
|
|
F(cxx_uniform_initialization) \
|
|
|
F(cxx_unrestricted_unions) \
|
|
|
F(cxx_user_literals) \
|
|
|
- F(cxx_variable_templates) \
|
|
|
F(cxx_variadic_macros) \
|
|
|
F(cxx_variadic_templates)
|
|
|
|
|
|
+#define FOR_EACH_CXX14_FEATURE(F) \
|
|
|
+ F(cxx_aggregate_default_initializers) \
|
|
|
+ F(cxx_attribute_deprecated) \
|
|
|
+ F(cxx_binary_literals) \
|
|
|
+ F(cxx_contextual_conversions) \
|
|
|
+ F(cxx_decltype_auto) \
|
|
|
+ F(cxx_digit_separators) \
|
|
|
+ F(cxx_generic_lambdas) \
|
|
|
+ F(cxx_lambda_init_captures) \
|
|
|
+ F(cxx_relaxed_constexpr) \
|
|
|
+ F(cxx_return_type_deduction) \
|
|
|
+ F(cxx_variable_templates)
|
|
|
+
|
|
|
+#define FOR_EACH_CXX_FEATURE(F) \
|
|
|
+ F(cxx_std_98) \
|
|
|
+ F(cxx_std_11) \
|
|
|
+ F(cxx_std_14) \
|
|
|
+ F(cxx_std_17) \
|
|
|
+ F(cxx_std_20) \
|
|
|
+ FOR_EACH_CXX98_FEATURE(F) \
|
|
|
+ FOR_EACH_CXX11_FEATURE(F) \
|
|
|
+ FOR_EACH_CXX14_FEATURE(F)
|
|
|
+
|
|
|
#endif
|