123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405 |
- const char features[] = {"\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_aggregate_nsdmi)
- "1"
- #else
- "0"
- #endif
- "cxx_aggregate_default_initializers\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alias_templates)
- "1"
- #else
- "0"
- #endif
- "cxx_alias_templates\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas)
- "1"
- #else
- "0"
- #endif
- "cxx_alignas\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas)
- "1"
- #else
- "0"
- #endif
- "cxx_alignof\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_attributes)
- "1"
- #else
- "0"
- #endif
- "cxx_attributes\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L
- "1"
- #else
- "0"
- #endif
- "cxx_attribute_deprecated\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_auto_type)
- "1"
- #else
- "0"
- #endif
- "cxx_auto_type\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_binary_literals)
- "1"
- #else
- "0"
- #endif
- "cxx_binary_literals\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_constexpr)
- "1"
- #else
- "0"
- #endif
- "cxx_constexpr\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_contextual_conversions)
- "1"
- #else
- "0"
- #endif
- "cxx_contextual_conversions\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype)
- "1"
- #else
- "0"
- #endif
- "cxx_decltype\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L
- "1"
- #else
- "0"
- #endif
- "cxx_decltype_auto\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype_incomplete_return_types)
- "1"
- #else
- "0"
- #endif
- "cxx_decltype_incomplete_return_types\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_default_function_template_args)
- "1"
- #else
- "0"
- #endif
- "cxx_default_function_template_args\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions)
- "1"
- #else
- "0"
- #endif
- "cxx_defaulted_functions\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions)
- "1"
- #else
- "0"
- #endif
- "cxx_defaulted_move_initializers\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_delegating_constructors)
- "1"
- #else
- "0"
- #endif
- "cxx_delegating_constructors\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_deleted_functions)
- "1"
- #else
- "0"
- #endif
- "cxx_deleted_functions\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L
- "1"
- #else
- "0"
- #endif
- "cxx_digit_separators\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L
- "1"
- #else
- "0"
- #endif
- "cxx_enum_forward_declarations\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_explicit_conversions)
- "1"
- #else
- "0"
- #endif
- "cxx_explicit_conversions\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L
- "1"
- #else
- "0"
- #endif
- "cxx_extended_friend_declarations\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L
- "1"
- #else
- "0"
- #endif
- "cxx_extern_templates\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control)
- "1"
- #else
- "0"
- #endif
- "cxx_final\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L
- "1"
- #else
- "0"
- #endif
- "cxx_func_identifier\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers)
- "1"
- #else
- "0"
- #endif
- "cxx_generalized_initializers\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L
- "1"
- #else
- "0"
- #endif
- "cxx_generic_lambdas\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_inheriting_constructors)
- "1"
- #else
- "0"
- #endif
- "cxx_inheriting_constructors\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L
- "1"
- #else
- "0"
- #endif
- "cxx_inline_namespaces\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_lambdas)
- "1"
- #else
- "0"
- #endif
- "cxx_lambdas\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_init_captures)
- "1"
- #else
- "0"
- #endif
- "cxx_lambda_init_captures\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_local_type_template_args)
- "1"
- #else
- "0"
- #endif
- "cxx_local_type_template_args\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L
- "1"
- #else
- "0"
- #endif
- "cxx_long_long_type\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_noexcept)
- "1"
- #else
- "0"
- #endif
- "cxx_noexcept\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nonstatic_member_init)
- "1"
- #else
- "0"
- #endif
- "cxx_nonstatic_member_init\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nullptr)
- "1"
- #else
- "0"
- #endif
- "cxx_nullptr\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control)
- "1"
- #else
- "0"
- #endif
- "cxx_override\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_range_for)
- "1"
- #else
- "0"
- #endif
- "cxx_range_for\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_raw_string_literals)
- "1"
- #else
- "0"
- #endif
- "cxx_raw_string_literals\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_reference_qualified_functions)
- "1"
- #else
- "0"
- #endif
- "cxx_reference_qualified_functions\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_relaxed_constexpr)
- "1"
- #else
- "0"
- #endif
- "cxx_relaxed_constexpr\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_return_type_deduction)
- "1"
- #else
- "0"
- #endif
- "cxx_return_type_deduction\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L
- "1"
- #else
- "0"
- #endif
- "cxx_right_angle_brackets\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_rvalue_references)
- "1"
- #else
- "0"
- #endif
- "cxx_rvalue_references\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L
- "1"
- #else
- "0"
- #endif
- "cxx_sizeof_member\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_static_assert)
- "1"
- #else
- "0"
- #endif
- "cxx_static_assert\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_strong_enums)
- "1"
- #else
- "0"
- #endif
- "cxx_strong_enums\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 199711L
- "1"
- #else
- "0"
- #endif
- "cxx_template_template_parameters\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_thread_local)
- "1"
- #else
- "0"
- #endif
- "cxx_thread_local\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_trailing_return)
- "1"
- #else
- "0"
- #endif
- "cxx_trailing_return_types\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unicode_literals)
- "1"
- #else
- "0"
- #endif
- "cxx_unicode_literals\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers)
- "1"
- #else
- "0"
- #endif
- "cxx_uniform_initialization\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unrestricted_unions)
- "1"
- #else
- "0"
- #endif
- "cxx_unrestricted_unions\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_user_literals)
- "1"
- #else
- "0"
- #endif
- "cxx_user_literals\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variable_templates)
- "1"
- #else
- "0"
- #endif
- "cxx_variable_templates\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L
- "1"
- #else
- "0"
- #endif
- "cxx_variadic_macros\n"
- "CXX_FEATURE:"
- #if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variadic_templates)
- "1"
- #else
- "0"
- #endif
- "cxx_variadic_templates\n"
- };
- int main(int argc, char** argv) { (void)argv; return features[argc]; }
|