template
requires C
auto f(T v) {
return vt + v;
}
template
constexpr auto type_size = sizeof(T);
int main() {
f(8);
}
< /code>
Однако следующий код все еще остается незаконным в C ++ 26: < /p>
template
T f1(T v) { return v + 1; }
template
T f2(T v) { return v + 2; }
// There can be many similar template functions like f3, f4, ...
template
T g(T v) { return f(v); }
int main() {
g(4);
g(5);
// g(6);
// g(7);
// ...
}
Теперь, когда concepts и шаблоны переменных могут быть параметром шаблона, почему шаблоны функций все еще не допускаются?>
В C ++ 26 следующий код является законным (см. Статью P2841R7 и Herb Sutter): < /p> [code]template requires C auto f(T v) { return vt + v; }
template constexpr auto type_size = sizeof(T);
int main() { f(8); } < /code> Однако следующий код все еще остается незаконным в C ++ 26: < /p> template T f1(T v) { return v + 1; }
template T f2(T v) { return v + 2; }
// There can be many similar template functions like f3, f4, ...
template T g(T v) { return f(v); }
int main() { g(4); g(5); // g(6); // g(7); // ... } [/code] Теперь, когда [b] concepts [/b] и [b] шаблоны переменных [/b] могут быть параметром шаблона, почему [b] шаблоны функций [/b] все еще не допускаются?>