1
2set(testable_features
3  cxx_alias_templates
4  cxx_alignas
5  cxx_attributes
6  cxx_auto_type
7  cxx_binary_literals
8  cxx_constexpr
9  cxx_contextual_conversions
10  cxx_decltype
11  cxx_default_function_template_args
12  cxx_defaulted_functions
13  cxx_delegating_constructors
14  cxx_deleted_functions
15  cxx_explicit_conversions
16  cxx_generalized_initializers
17  cxx_inheriting_constructors
18  cxx_lambdas
19  cxx_local_type_template_args
20  cxx_noexcept
21  cxx_nonstatic_member_init
22  cxx_nullptr
23  cxx_range_for
24  cxx_raw_string_literals
25  cxx_reference_qualified_functions
26  cxx_relaxed_constexpr
27  cxx_return_type_deduction
28  cxx_rvalue_references
29  cxx_static_assert
30  cxx_strong_enums
31  cxx_thread_local
32  cxx_unicode_literals
33  cxx_unrestricted_unions
34  cxx_user_literals
35  cxx_variable_templates
36  cxx_variadic_templates
37)
38if(NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
39  list(APPEND testable_features cxx_decltype_incomplete_return_types)
40endif()
41
42foreach(feature ${testable_features})
43  set(_cmake_feature_test_${feature} "${_cmake_oldestSupported} && __has_feature(${feature})")
44endforeach()
45
46unset(testable_features)
47
48set(_cmake_feature_test_cxx_aggregate_default_initializers "${_cmake_oldestSupported} && __has_feature(cxx_aggregate_nsdmi)")
49
50set(_cmake_feature_test_cxx_trailing_return_types "${_cmake_oldestSupported} && __has_feature(cxx_trailing_return)")
51set(_cmake_feature_test_cxx_alignof "${_cmake_oldestSupported} && __has_feature(cxx_alignas)")
52set(_cmake_feature_test_cxx_final "${_cmake_oldestSupported} && __has_feature(cxx_override_control)")
53set(_cmake_feature_test_cxx_override "${_cmake_oldestSupported} && __has_feature(cxx_override_control)")
54set(_cmake_feature_test_cxx_uniform_initialization "${_cmake_oldestSupported} && __has_feature(cxx_generalized_initializers)")
55set(_cmake_feature_test_cxx_defaulted_move_initializers "${_cmake_oldestSupported} && __has_feature(cxx_defaulted_functions)")
56set(_cmake_feature_test_cxx_lambda_init_captures "${_cmake_oldestSupported} && __has_feature(cxx_init_captures)")
57