view gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat1.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
line wrap: on
line source

// { dg-do compile { target c++2a } }

template<int N, typename T>
concept Foo = requires(T t) { foo<N + 1>(t); }; // { dg-error "template instantiation depth" }

template<int N = 1, typename T = int>
  requires Foo<N, T>
int foo(T t)
{
  return foo<N + 1>(t);
}

int main(int, char**)
{
  return foo<1>(1);
}

// { dg-prune-output "compilation terminated" }