What combination of concepts allows me to declare arrays without getting an 'have incomplete type' error?

*** errror ***

help.cpp: In function 'void foo(DC)':
help.cpp:6: error: elements of array 'DC vals [8]' have incomplete type


**** code ****

#include<concepts>

template <std::DefaultConstructible DC>
void foo (DC val)
{
  static DC vals[8];
}

int main ()
{
  foo(3);
}