D
Допустим, есть
template <class T> concept foo = ...;Я его использую как
template <foo T>Теперь я хочу, чтобы
void f(T& value);
f
принимала forwarding reference на T
Я могу написатьtemplate <class T> requires foo<std::remove_cvref_t<T>>но это некрасиво. Как можно запихнуть эту конструкцию в
void f(T&& value)
<..>
? В идеале, нужна композиция концептов, чтобы можно было шаблонизировать концепты концептами.. типа:template <unref<foo> T>
Какие есть варианты решения?