CHECK_CXX_SOURCE_COMPILES(
"
#include <version>
#if __cplusplus < 201709L && !defined(_MSC_VER) && !defined(__INTEL_COMPILER)
# error \"insufficient support for C++20\"
#endif
#if !(defined __cpp_lib_ranges) || (__cpp_lib_ranges < 201911)
# error \"insufficient support for C++20\"
#endif
#if !(defined __cpp_lib_type_identity)
# error \"insufficient support for C++20: __cpp_lib_type_identity not defined\"
#endif
#if !(defined __cpp_lib_type_identity) || (__cpp_lib_type_identity < 201806)
# error \"insufficient support for C++20: __cpp_lib_type_identity is too old \"
#endif
// Test concepts and requires clauses
template <int dim, int spacedim>
concept is_valid_dim_spacedim = (dim >= 1 && spacedim <= 3 &&
dim <= spacedim);
template <int dim, int spacedim>
requires is_valid_dim_spacedim<dim,spacedim>
class Triangulation
{};
Triangulation<1,3> t;
int main()
{
}
"
DEAL_II_HAVE_CXX20_FEATURES)