Например:
template <size_t N> requires NonZeroSize<N>
void foo();
Или просто:
template <size_t N> requires (N > 0)
void foo();
Более краткая форма зарезервирована для понятий типа.
Само определение понятия является просто произвольным логическим выражением:
template <size_t N>
concept NonZeroSize = (N > 0);
A require-expression - это просто особый вид выражения, который очень полезен в определения понятий, но он не должен иметь для использования во всех определениях понятий, и не должен появляться в определении понятия с самого начала. Эти вещи ортогональны.